Einführung
In diesem Lab werden wir untersuchen, wie man in JavaScript ein Array anhand einer gegebenen Filterfunktion aufteilt. Wir werden die Array.prototype.reduce()-Methode und die Array.prototype.push()-Methode verwenden, um die Werte des Arrays in zwei Gruppen aufzuteilen, je nachdem, ob die Filterfunktion einen wahren Wert zurückgibt oder nicht. Dieses Lab ist dazu gedacht, Ihr Verständnis von höheren Funktionen und der Array-Manipulation in JavaScript zu verbessern.
Funktion zum Teilen eines Arrays in zwei Gruppen
Um ein Array in zwei Gruppen basierend auf dem Ergebnis einer gegebenen Funktion zu teilen, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Code-Praxis zu beginnen. - Verwenden Sie die
Array.prototype.reduce()- undArray.prototype.push()-Methoden, um Elemente zu den Gruppen hinzuzufügen. Dies basiert auf dem von der gegebenen Funktionfnfür jedes Element zurückgegebenen Wert. - Wenn
fnfür irgendein Element einen wahren Wert zurückgibt, fügen Sie es zur ersten Gruppe hinzu. Andernfalls fügen Sie es zur zweiten Gruppe hinzu.
Hier ist der Code:
const bifurcateBy = (arr, fn) =>
arr.reduce(
(acc, val, i) => (acc[fn(val, i) ? 0 : 1].push(val), acc),
[[], []]
);
Beispielsweise wird, wenn Sie bifurcateBy(['beep', 'boop', 'foo', 'bar'], x => x[0] === 'b') aufrufen, die Funktion [ ['beep', 'boop', 'bar'], ['foo'] ] zurückgeben.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Bifurcate Array Based on Function" abgeschlossen. Sie können in LabEx weitere Labs ausprobieren, um Ihre Fähigkeiten zu verbessern.