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

CSS-Position feste linke und rechte Doppelpositionierungs-Implementierungscode

CSS-Position Das Positionsattribut gibt den Posit...

Analyse von MySQL-Latenzproblemen und Datenlöschungsstrategieprozess

Inhaltsverzeichnis 1. MySQL-Replikationsprozess 2...

Die Verwendung der Vue-Direktive v-bind und zu beachtende Punkte

Inhaltsverzeichnis 1. v-bind: kann einige Daten a...

Analyse und Praxis des serverseitigen Rendering-Prinzips von React

Die meisten Leute haben schon einmal vom Konzept ...

Eine Zusammenfassung detaillierter Einblicke in den Import von CSS

Auf die Entwicklungsgeschichte von CSS wird hier ...

Gestaltung der Bildvorschau auf der Inhaltswebseite

<br />Ich habe bereits zwei Artikel geschrie...

Vue implementiert das Hinzufügen von Wasserzeichen zu hochgeladenen Bildern

In diesem Artikel wird der spezifische Implementi...

NULL und leere Zeichenfolge in MySQL

Ich bin vor kurzem mit MySQL in Berührung gekomme...

Vue Router lädt verschiedene Komponenten je nach Hintergrunddaten

Inhaltsverzeichnis Anforderungen aus der Projektp...

So verschieben Sie ein rotes Rechteck mit der Maus im Linux-Zeichenterminal

Alles ist eine Datei! UNIX hat es bereits gesagt....

Ein Beispiel zur Optimierung eines Projekts nach Abschluss des Vue-Projekts

Inhaltsverzeichnis 1. Geben Sie unterschiedliche ...

Zusammenfassung der Lösungen für allgemeine Linux-Probleme

1. Centos7 unter VMware verbinden und eine feste ...