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

Installieren Sie MySQL 5.6 aus der Yum-Quelle im Centos7.4-System

Systemumgebung: centos7.4 1. Prüfen Sie, ob die D...

Mehrere Möglichkeiten zum Wechseln zwischen Vue Tab und Cache-Seiten

Inhaltsverzeichnis 1. So wechseln Sie 2. Register...

Vue integriert Tencent TIM Instant Messaging

In diesem Artikel wird hauptsächlich die Integrat...

So zeigen Sie alle laufenden Prozesse in Linux an

Sie können den Befehl ps verwenden. Es kann relev...

Teilen Sie das Problem, dass Ubuntu 19 die Docker-Quelle nicht installieren kann

Entsprechend den wichtigsten Websites und persönl...

Zusammenfassung häufiger Probleme mit MySQL-Indizes

F1: Welche Indizes hat die Datenbank? Was sind di...

HTML+CSS zum Erstellen eines Menüs in der oberen Navigationsleiste

Navigationsleiste erstellen: Technische Vorausset...

Beispielanalyse der Verwendung des neuen JSON-Feldtyps in MySQL 5.7

Dieser Artikel veranschaulicht anhand eines Beisp...

So wählen und verwenden Sie PNG, JPG und GIF als Web-Bildformate

Welches dieser Formate (GIF, PNG oder JPG) sollte...

Vor- und Nachteile von React Hooks

Inhaltsverzeichnis Vorwort Vorteil: Mangel: 1. Re...

Docker verwendet Supervisor zur Verwaltung von Prozessvorgängen

Ein Docker-Container startet beim Start beispiels...

Einstellungen für den Ubuntu-Boot-Autostart-Dienst

So erstellen Sie einen Dienst und starten ihn aut...