Erkennen Sie die Unterschiede zwischen den Methoden „Filter“, „Find“, „Some“ und „Reduce“ in Array und wenden Sie sie je nach Verwendungsszenario besser beim täglichen Codieren an. Array.finden Array.find gibt ein Objekt zurück (das erste Objekt, das die Bedingung erfüllt) und stoppt die Durchquerung const arrTest = [ { ID: 1, Name: "a" }, { ID: 2, Name: "b" }, { ID: 3, Name: "b" }, { ID: 4, Name: "c" } ] // Filterbedingungsfunktion getName(val) { return arrTest => arrTest.name === Wert } // Wenn wir die ersten Daten finden möchten, die die Bedingungen erfüllen, sollten wir „Array.find“ verwenden. console.log(arrTest.find(getName("b"))) // { ID: 2, Name: "b" } Array.einige Array.some gibt einen Booleschen Wert zurück, der angibt, ob die Bedingung erfüllt ist. const arrTest = [ { id: 1, name: "a", status: "wird geladen" }, { ID: 2, Name: "b", Status: "wird geladen" }, { ID: 3, Name: "b", Status: "Erfolg" } ] // Filterbedingungsfunktion getStatus(val) { return arrTest => arrTest.status === Wert } // Wenn wir herausfinden müssen, ob bestimmte Daten in einem Array vorhanden sind, verwenden Sie Array.some, um das Ergebnis direkt zu erhalten console.log(arrTest.some(getStatus("success"))) // WAHR Array.filter Array.filter durchläuft das gesamte Array und gibt ein Array zurück (das alle Objekte enthält, die die Bedingungen erfüllen). const arrTest = [ { id: 1, name: "a", status: "wird geladen" }, { ID: 2, Name: "b", Status: "wird geladen" }, { ID: 3, Name: "b", Status: "Erfolg" } ] // Filterbedingungsfunktion getStatus(val) { return arrTest => arrTest.status === Wert } // Wenn wir alle Daten herausfiltern müssen, die die Bedingungen in einem Array erfüllen, sollten wir Array.filter verwenden Konsole.log(arrTest.filter(getStatus("wird geladen"))) // [ // { id: 1, name: "a", status: "wird geladen" }, // { id: 2, name: "b", status: "wird geladen" } // ] Array.reduzieren Array.reduce ist eine Methode zum Zusammenführen von Arrays, die in vielen Szenarien verwendet werden kann, z. B. zum Summieren, Multiplizieren, Zählen, Deduplizieren, Konvertieren mehrdimensionaler Daten in eindimensionale Daten, Summieren von Attributen usw. const arrTest = [ { id: 1, status: "wird geladen" }, { id: 2, status: "wird geladen" }, { id: 3, status: "erfolgreich" } ] konsole.log( arrTest.reduce((acc, Zeichen) => { return character.status === "wird geladen" ? acc.concat( Objekt.assign({}, Zeichen, { Farbe: "info" }) ) : gem. }, []) ) // [ // { id: 1, status: "wird geladen", farbe: "info" }, // { id: 2, status: "wird geladen", farbe: "info" } // ] Im Gegensatz zum von Array.filter zurückgegebenen Array gibt filter eine Reihe von Objekten zurück, die die Bedingungen im ursprünglichen Array erfüllen. Das obige Ergebnis kann auch durch die Kombination von filter mit Array.map erreicht werden. Warum ist es besser, reduce zu verwenden? // Array.map und Array.filter kombiniert console.log( arrTest .filter(Zeichen => Zeichen.status === "wird geladen") .map(Zeichen => Objekt.assign({}, Zeichen, { Farbe: "info" }) ) ) // [ // { id: 1, status: "wird geladen", farbe: "info" }, // { id: 2, status: "wird geladen", farbe: "info" } // ] Fazit: Bei gleichzeitiger Verwendung von Array.filter und Array.map wird das gesamte Array zweimal durchlaufen. Beim ersten Mal geht es darum, ein neues Array zu filtern und zurückzugeben, und beim zweiten Mal geht es darum, über die Map ein neues Array zu erstellen. Es werden zwei Array-Methoden verwendet, jede mit ihrer eigenen Rückruffunktion, und das vom Filter zurückgegebene Array wird nie wieder verwendet. Dies ist das Ende dieses Artikels mit der detaillierten Erklärung der Unterschiede zwischen JS-Array-Find, Some, Filter und Reduce. Weitere verwandte Inhalte zu JS-Array-Find, Some, Filter und Reduce finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Lösen Sie schnell das Problem, dass CentOS in VMware nicht auf das Internet zugreifen kann
>>: Warum verwendet der MySQL-Datenbankindex den B+-Baum?
Kompatibel mit neuen CSS3-Eigenschaften In CSS3 k...
Ich habe gerade Ubuntu installiert und als ich es...
Detaillierte Erläuterung der JDBC-Datenbankverknü...
Kerncode <!DOCTYPE html> <html lang=&quo...
Vorwort Dieser Artikel ist lediglich eine einfach...
Quelle: https://medium.com/better-programming, Au...
Überblick Ein Index ist eine vom DBMS basierend a...
Dies ist der zu erzielende Effekt: Sie können seh...
Inhaltsverzeichnis Props-Vergleich von Klassenkom...
Wie kann ich überprüfen, ob die Zeitzone des Dock...
Designprinzipien für die Open-Source-Datenbankarc...
Vorwort: Das am häufigsten verwendete logische My...
Ich habe in letzter Zeit viel MySQL-bezogene Synt...
Zip-Installationsschritte für die MySQL 8-Windows...
Wenn MySQL zu viel CPU beansprucht, wo sollten wi...