Filtere nicht eindeutige Array-Werte basierend auf einer Funktion

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 eine JavaScript-Funktion untersuchen, die nicht eindeutige Array-Werte basierend auf einer bereitgestellten Vergleichsfunktion filtert. Mit Hilfe von Array.prototype.filter() und Array.prototype.every() werden wir ein neues Array erstellen, das nur die eindeutigen Werte basierend auf der Vergleichsfunktion enthält. Ziel dieses Labs ist es, Ihr Verständnis von JavaScript-Array-Methoden und wie Sie diese verwenden, um Daten zu manipulieren, zu verbessern.

Filtering Non-Unique Array Values with a Function

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

Dieser Code filtert nicht eindeutige Werte aus einem Array basierend auf einer bereitgestellten Vergleichsfunktion. Hier sind die Schritte, um dies zu erreichen:

  1. Verwenden Sie Array.prototype.filter() und Array.prototype.every(), um ein neues Array mit nur den eindeutigen Werten basierend auf der Vergleichsfunktion fn zu erstellen.
  2. Die Vergleichsfunktion nimmt vier Argumente entgegen: die Werte der beiden zu vergleichenden Elemente und ihre Indizes.
  3. Die Funktion filterNonUniqueBy implementiert die obigen Schritte und gibt das Array mit den eindeutigen Werten zurück.
const filterNonUniqueBy = (arr, fn) =>
  arr.filter((v, i) => arr.every((x, j) => (i === j) === fn(v, x, i, j)));

Hier ist ein Beispiel, wie diese Funktion verwendet werden kann:

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

Dieser Code ist präzise, klar und kohärent und sollte wie erwartet funktionieren.

Zusammenfassung

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