0
votes

Comment filtrer la matrice d'objets et vérifier si plusieurs objets à l'intérieur de la matrice ont la même valeur de propriété en JavaScript?

Comment filtrer la matrice d'objets et vérifier si plusieurs objets à l'intérieur de la matrice ont la même valeur de valeur de la propriété "Enterprise" dans JavaScript.

    this.accounts
              .filter(
                item => item.plan === 'enterprise'
              )
              // then how can I check if there is more than one object
              // containing above enterprise value? if so then return some message.
          }


4 commentaires

.Filter () Méthode ITERATES sur tous les éléments d'un tableau.


vous venez de le vérifier, il accumulera tous les objets qui ont le projet spécifié


@Eugensunic j'ai besoin de vérifier s'il y a plus d'un objet avec ce filtre puis renvoie un message


Vérifiez la longueur de la matrice renvoyée et si> 1 alerte d'émission


3 Réponses :


1
votes

Vous pouvez obtenir la longueur du tableau, puis vérifier si elle est supérieure à une, imprimez donc un message

 const elmCount = this.accounts
   .filter(
     item => item.plan === 'enterprise'
   ).length

 if (elmCount > 1) {
   console.log('print message')
 }


0 commentaires

0
votes

Il suffit de filtrer puis obtenez la longueur.

p>

accounts = [{plan: 'test'}, {plan: 'extra'}, {plan: 'enterprise'}, {plan: 'basic'}, {plan: 'enterprise'}];
let length = accounts.filter(item => item.plan === 'enterprise').length;

if (length>1) console.log('enterprise more than once: ' + length);


0 commentaires

1
votes

Après avoir effectué le filtre, vous pouvez simplement compter le nombre d'éléments à la suite de la méthode code> Filtre Code>. qui vous dira combien de comptes avec plan d'entreprise existent

p>

var accounts = [
 {id: 1, name: "Account 1", plan: "basic"},
 {id: 2, name: "Account 2", plan: "medium"},
 {id: 3, name: "Account 3", plan: "enterprise"},
 {id: 4, name: "Account 4", plan: "medium"},
 {id: 5, name: "Account 5", plan: "enterprise"}
]


var enterpriseAccounts = accounts.filter(item => item.plan === "enterprise");

if(enterpriseAccounts.length > 1 ) {
  console.log('There are more than one enterprise account');
} else {
 console.log('There are 0 or 1 enterprise account');
}


0 commentaires