Detaillierte Erklärung der Unterschiede zwischen JS-Arrays „Finden“, „Some“, „Filtern“ und „Reduzieren“

Detaillierte Erklärung der Unterschiede zwischen JS-Arrays „Finden“, „Some“, „Filtern“ und „Reduzieren“

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.
Die Beispiele in diesem Abschnitt implementieren hauptsächlich Array.reduce, um nach der bedingten Filterung eines Datensatzes ein neues Array zurückzugeben.

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.
Die Verwendung von Array.reduce führt zum gleichen Ergebnis, jedoch mit eleganteren Code.

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:
  • Detaillierte Erklärung der Reduce-Methode von Arrays in JavaScript
  • Detaillierte Erklärung der JS-Array-Reduce()-Methode und fortgeschrittener Techniken
  • js Array-Methode reduziert klassische Nutzung Code-Sharing
  • 25 erweiterte Verwendungsmöglichkeiten von JS Array Reduce, die Sie kennen müssen
  • Analyse des Prinzips und der Verwendungsfähigkeiten der JS-Array-Reduce () -Methode
  • Teilen Sie die Magie der Javascript-Array-Methode „Reduce“
  • Detaillierte Erläuterung der Funktion und Verwendung der JS-Array-Reduce-Methode
  • Parsen der JavaScript-Array-Methode „Reduce“
  • Beispielanalyse der Verwendung der JS-Array-Methode „Reduce“
  • JavaScript-Array reduziert allgemeine Instanzmethoden

<<:  Lösen Sie schnell das Problem, dass CentOS in VMware nicht auf das Internet zugreifen kann

>>:  Warum verwendet der MySQL-Datenbankindex den B+-Baum?

Artikel empfehlen

Detaillierte Erklärung häufig verwendeter CSS-Stile (Layout)

Kompatibel mit neuen CSS3-Eigenschaften In CSS3 k...

Methode und Einführung der Tabellenindexdefinition in MySQL

Überblick Ein Index ist eine vom DBMS basierend a...

Neonlichteffekte mit reinem CSS3 umgesetzt

Dies ist der zu erzielende Effekt: Sie können seh...

Ein kurzer Vergleich von Props in React

Inhaltsverzeichnis Props-Vergleich von Klassenkom...

Vorgang zur Zeitzonenanpassung im Docker-Container

Wie kann ich überprüfen, ob die Zeitzone des Dock...

Optimierungsmethoden, wenn MySQL zu viel CPU beansprucht (unbedingt lesen)

Wenn MySQL zu viel CPU beansprucht, wo sollten wi...