Filter Unique Array Values Based on Function

JavaScriptJavaScriptBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man in JavaScript ein Array mit eindeutigen Werten erstellt, die anhand einer Vergleichsfunktion gefiltert werden. Wir werden die Methoden Array.prototype.filter() und Array.prototype.every() verwenden, um ein Array zu erstellen, das nur die nicht-eindeutigen Werte enthält. In diesem Lab erhalten Sie praktische Erfahrungen bei der Filterung von eindeutigen Array-Werten mit einer Vergleichsfunktion.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/obj_manip("Object Manipulation") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28336{{"Filter Unique Array Values Based on Function"}} javascript/data_types -.-> lab-28336{{"Filter Unique Array Values Based on Function"}} javascript/arith_ops -.-> lab-28336{{"Filter Unique Array Values Based on Function"}} javascript/comp_ops -.-> lab-28336{{"Filter Unique Array Values Based on Function"}} javascript/obj_manip -.-> lab-28336{{"Filter Unique Array Values Based on Function"}} javascript/higher_funcs -.-> lab-28336{{"Filter Unique Array Values Based on Function"}} end

Filter Unique Array Values Based on Function

Hier ist, wie man ein Array erstellt, das nur die nicht-eindeutigen Werte enthält, indem man die eindeutigen Werte anhand einer Vergleichsfunktion, fn, herausfiltert:

const filterUniqueBy = (arr, fn) =>
  arr.filter((v, i) => arr.some((x, j) => (i !== j) === fn(v, x, i, j)));

Um diese Funktion zu verwenden, rufen Sie filterUniqueBy() mit zwei Argumenten auf: das Array, das Sie filtern möchten, und die Vergleichsfunktion. Die Vergleichsfunktion sollte vier Argumente akzeptieren: die Werte der beiden zu vergleichenden Elemente und ihre Indizes.

Beispielsweise, wenn Sie ein Array von Objekten haben und die Objekte mit eindeutigen id-Werten herausfiltern möchten, können Sie das folgendermaßen tun:

filterUniqueBy(
  [
    { id: 0, value: "a" },
    { id: 1, value: "b" },
    { id: 2, value: "c" },
    { id: 3, value: "d" },
    { id: 0, value: "e" }
  ],
  (a, b) => a.id == b.id
); // [ { id: 0, value: 'a' }, { id: 0, value: 'e' } ]

Um zu beginnen, mit der Programmierung zu üben, öffnen Sie das Terminal/SSH und geben Sie node ein.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab "Filter Unique Array Values Based on Function" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.