Maison >interface Web >js tutoriel >Comment puis-je rechercher efficacement des objets dans un tableau JavaScript en fonction de la valeur d'attribut ?

Comment puis-je rechercher efficacement des objets dans un tableau JavaScript en fonction de la valeur d'attribut ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-10 08:44:17521parcourir

How Can I Efficiently Find Objects in a JavaScript Array Based on Attribute Value?

Localisation d'objets dans des tableaux en fonction de la valeur d'attribut

Considérez un tableau comme :

vendors = [{
    Name: 'Magenic',
    ID: 'ABC'
  },
  {
    Name: 'Microsoft',
    ID: 'DEF'
  }, // and so on...
];

Comment pouvez-vous efficacement déterminer si « Magenic » existe dans ce tableau ? Voici comment y parvenir sans recourir à un bouclage explicite, ce qui est particulièrement utile lorsque vous traitez de grands ensembles de données :

Utiliser la méthode some pour trouver un seul élément correspondant :

if (vendors.some(e => e.Name === 'Magenic')) {
  // A matching object is found!
}

Récupérer le objet correspondant à l'aide de find :

if (vendors.find(e => e.Name === 'Magenic')) {
  // Returns the object itself, not just a boolean.
}

Trouver l'index du premier élément correspondant avec findIndex :

const i = vendors.findIndex(e => e.Name === 'Magenic');
if (i > -1) {
  // Indicates a matching object found at index i.
}

Si plusieurs objets correspondants sont requis, utilisez le filtre :

if (vendors.filter(e => e.Name === 'Magenic').length > 0) {
  // Returns all objects that satisfy the condition.
}

Pour les navigateurs ne prenant pas en charge les fonctions de flèche :

if (vendors.filter(function(e) { return e.Name === 'Magenic'; }).length > 0) {
  // Same as above, using traditional function syntax.
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn