Heim > Web-Frontend > js-Tutorial > Wie kann ich Objekte in JavaScript-Arrays basierend auf Attributwerten effizient finden?

Wie kann ich Objekte in JavaScript-Arrays basierend auf Attributwerten effizient finden?

Mary-Kate Olsen
Freigeben: 2024-12-18 21:00:15
Original
566 Leute haben es durchsucht

How Can I Efficiently Find Objects in JavaScript Arrays Based on Attribute Values?

Objekte in Arrays basierend auf Attributwerten in JavaScript finden

Beim Umgang mit Arrays von Objekten ist es häufig erforderlich, anhand von Attributwerten nach bestimmten Elementen zu suchen. Dies ist besonders nützlich, wenn mit großen Arrays gearbeitet wird, um ineffiziente Schleifen zu vermeiden.

Das Problem

Betrachten Sie das folgende Array von Anbieterobjekten:

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

Das Ziel ist die Bestimmung wenn in diesem Array ein Objekt mit dem Namensattribut gleich „Magenic“ vorhanden ist, ohne auf explizite Schleifen zurückzugreifen.

Die Lösung

Modernes JavaScript bietet mehrere Array-Methoden, die diese Aufgabe mühelos machen:

Mit einigen:

if (vendors.some(e => e.Name === 'Magenic')) {
  // We found at least one object that we're looking for!
}
Nach dem Login kopieren

einige iteriert über das Array und gibt zurück true, sobald ein Element gefunden wird, das der angegebenen Bedingung entspricht.

Using find:

if (vendors.find(e => e.Name === 'Magenic')) {
  // Usually the same result as above, but find returns the found object instead of a boolean
}
Nach dem Login kopieren

find verhält sich ähnlich wie einige, aber anstatt einen booleschen Wert zurückzugeben, gibt es das erste Element zurück, das der Bedingung entspricht.

Ermitteln der Position des Objekts :

Um die Position des passenden Elements zu erhalten, verwenden Sie findIndex:

const i = vendors.findIndex(e => e.Name === 'Magenic');
if (i > -1) {
  // We know that at least 1 object that matches has been found at the index i
}
Nach dem Login kopieren

Alle passenden Objekte finden:

if (vendors.filter(e => e.Name === 'Magenic').length > 0) {
  // The same result as above, but filter returns all objects that match
}
Nach dem Login kopieren

filter gibt ein Array aller Elemente zurück, die die angegebene Bedingung erfüllen.

Kompatibilität mit älteren Browsern:

Für Browser, die keine Pfeilfunktionen unterstützen, ist ein Ein alternativer Ansatz mit der Standardfiltermethode ist:

if (vendors.filter(function(e) { return e.Name === 'Magenic'; }).length > 0) {
  // The same result as above, but filter returns all objects that match and we avoid an arrow function for compatibility
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Objekte in JavaScript-Arrays basierend auf Attributwerten effizient finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage