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.
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.