Einführung
In diesem Lab werden wir das Konzept der Array-Schnittmenge in JavaScript erkunden. Genauer gesagt werden wir eine Funktion implementieren, die die gemeinsamen Elemente zwischen zwei Arrays zurückgibt, nachdem eine bereitgestellte Funktion auf jedes Element beider Arrays angewendet wurde. Dieses Lab wird Ihnen helfen, zu verstehen, wie man in JavaScript Higher-Order-Funktionen verwendet, um Arrays zu manipulieren und übliche Programmierprobleme zu lösen.
Anweisungen zum Finden der Schnittmenge von abgebildeten Arrays
Um gemeinsame Elemente in zwei Arrays zu finden, nachdem eine Funktion auf jedes Element beider Arrays angewendet wurde, folgen Sie diesen Schritten:
- Öffnen Sie die Konsole/SSH und geben Sie
nodeein. - Verwenden Sie den unten bereitgestellten Code:
const intersectionBy = (a, b, fn) => {
const s = new Set(b.map(fn));
return [...new Set(a)].filter((x) => s.has(fn(x)));
};
- Ersetzen Sie in Ihrem Code
aundbdurch Ihre Arrays undfndurch die Funktion, die Sie auf jedes Element anwenden möchten. - Führen Sie den Code aus, um das resultierende Array mit gemeinsamen Elementen zu erhalten.
Beispiel:
intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); // [2.1]
intersectionBy(
[{ title: "Apple" }, { title: "Orange" }],
[{ title: "Orange" }, { title: "Melon" }],
(x) => x.title
); // [{ title: 'Orange' }]
Im ersten Beispiel wird die Funktion Math.floor auf die Arrays [2.1, 1.2] und [2.3, 3.4] angewendet, was das gemeinsame Element [2.1] zurückgibt.
Im zweiten Beispiel wird die Funktion x => x.title auf die Arrays [{ title: 'Apple' }, { title: 'Orange' }] und [{ title: 'Orange' }, { title: 'Melon' }] angewendet, was das gemeinsame Element [{ title: 'Orange' }] zurückgibt.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab zu der Schnittmenge von abgebildeten Arrays abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.