Einführung
In diesem Lab werden wir uns mit dem Konzept der symmetrischen Differenz befassen und wie es in JavaScript mithilfe der symmetricDifferenceBy()-Funktion implementiert werden kann. Wir werden untersuchen, wie diese Funktion verwendet werden kann, um die einzigartigen Werte zwischen zwei Arrays zu finden, nachdem eine bereitgestellte Funktion auf jedes Element beider Arrays angewendet wurde. Dieses Lab ist dazu gedacht, Ihnen zu helfen, diese leistungsstarke JavaScript-Methode besser zu verstehen und wie sie in Ihren eigenen Projekten eingesetzt werden kann.
Abgebildete Arraysymmetrische Differenz
Um mit der Programmierung zu beginnen, öffnen Sie das Terminal/SSH und geben Sie node ein.
Diese Funktion gibt die symmetrische Differenz zwischen zwei Arrays zurück, nachdem die bereitgestellte Funktion auf jedes Element beider Arrays angewendet wurde. So funktioniert es:
- Erstellen Sie aus jedem Array einen
Set, um die einzigartigen Werte jedes Arrays zu erhalten, nachdemfnauf sie angewendet wurde. - Verwenden Sie
Array.prototype.filter()auf jedem von ihnen, um nur die Werte zu behalten, die nicht in dem anderen enthalten sind.
Hier ist der Code für die symmetricDifferenceBy-Funktion:
const symmetricDifferenceBy = (a, b, fn) => {
const sA = new Set(a.map((v) => fn(v))),
sB = new Set(b.map((v) => fn(v)));
return [
...a.filter((x) => !sB.has(fn(x))),
...b.filter((x) => !sA.has(fn(x)))
];
};
Sie können symmetricDifferenceBy wie folgt verwenden:
symmetricDifferenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); // [ 1.2, 3.4 ]
symmetricDifferenceBy(
[{ id: 1 }, { id: 2 }, { id: 3 }],
[{ id: 1 }, { id: 2 }, { id: 4 }],
(i) => i.id
);
// [{ id: 3 }, { id: 4 }]
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab zu der abgebildeten Arraysymmetrischen Differenz abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.