Einführung
In diesem Lab werden wir die Implementierung der differenceBy-Funktion in JavaScript untersuchen. Diese Funktion ermöglicht es uns, den Unterschied zwischen zwei Arrays zu finden, indem wir eine bereitgestellte Funktion auf jedes Element in beiden Arrays anwenden. Wir werden lernen, wie wir Set, Array.prototype.map() und Array.prototype.filter() verwenden, um Arrays effektiv basierend auf einem bestimmten Kriterium zu vergleichen und zu filtern.
Funktion, um die Differenz zweier Arrays mithilfe von Mapping zurückzugeben
Um mit der Programmierung zu beginnen, öffnen Sie Ihr Terminal/SSH und geben Sie node ein.
Diese Funktion nimmt zwei Arrays und wendet die bereitgestellte Funktion auf jedes Element in beiden Arrays an, um ihre Differenz zurückzugeben.
Um dies zu tun:
- Erstellen Sie eine
Set, indem Sie die Funktion (fn) auf jedes Element im zweiten Array (b) anwenden. - Verwenden Sie
Array.prototype.map(), um die Funktion (fn) auf jedes Element im ersten Array (a) anzuwenden. - Verwenden Sie
Array.prototype.filter()in Kombination mit der Funktion (fn) auf dem ersten Array (a), um nur die Werte zu behalten, die nicht im zweiten Array (b) enthalten sind, indem SieSet.prototype.has()verwenden.
Hier ist der Code für die Funktion:
const differenceBy = (a, b, fn) => {
const s = new Set(b.map(fn));
return a.map(fn).filter((el) => !s.has(el));
};
Hier sind einige Beispiele dafür, wie die Funktion verwendet werden kann:
differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); // [1]
differenceBy([{ x: 2 }, { x: 1 }], [{ x: 1 }], (v) => v.x); // [2]
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab Mapped Array Difference abgeschlossen. Sie können in LabEx weitere Labs ausprobieren, um Ihre Fähigkeiten zu verbessern.