Array anhand einer Funktion aufteilen

Beginner

This tutorial is from open-source community. Access the source code

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:

  1. Öffnen Sie das Terminal/SSH und geben Sie node ein, um mit der Code-Praxis zu beginnen.
  2. Verwenden Sie die Array.prototype.reduce()- und Array.prototype.push()-Methoden, um Elemente zu den Gruppen hinzuzufügen. Dies basiert auf dem von der gegebenen Funktion fn für jedes Element zurückgegebenen Wert.
  3. Wenn fn fü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.