Array in zwei teilen

Beginner

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

Einführung

In diesem Lab werden wir untersuchen, wie man ein Array mithilfe von JavaScript in zwei separate Arrays aufteilt, basierend auf der Wahrheit eines bereitgestellten Funktionswertes für jedes Element. Wir werden die Array.prototype.reduce()-Methode verwenden, um zwei Arrays zu erstellen, und die Array.prototype.push()-Methode, um Elemente an das passende Array hinzuzufügen, basierend auf der Wahrheit des bereitgestellten Funktionswertes. Am Ende dieses Labs werden Sie ein starkes Verständnis dafür haben, wie man ein Array in JavaScript aufteilt, und können dieses Wissen in Ihren zukünftigen Projekten anwenden.

Wie man ein Array anhand einer Funktion in zwei teilt

Um ein Array anhand einer bereitgestellten Funktion in zwei zu teilen, folgen Sie diesen Schritten:

  1. Öffnen Sie das Terminal/SSH und geben Sie node ein, um mit der Codeausführung zu beginnen.
  2. Verwenden Sie Array.prototype.reduce(), um ein Array aus zwei Arrays zu erstellen.
  3. Verwenden Sie Array.prototype.push(), um Elemente, für die fn true zurückgibt, der ersten und Elemente, für die fn false zurückgibt, der zweiten Array hinzuzufügen.

Hier ist der Code, den Sie verwenden können:

const partition = (arr, fn) =>
  arr.reduce(
    (acc, val, i, arr) => {
      acc[fn(val, i, arr) ? 0 : 1].push(val);
      return acc;
    },
    [[], []]
  );

Um diesen Code zu testen, können Sie folgendes Beispiel verwenden:

const users = [
  { user: "barney", age: 36, active: false },
  { user: "fred", age: 40, active: true }
];
partition(users, (o) => o.active);
// [
//   [{ user: 'fred', age: 40, active: true }],
//   [{ user: 'barney', age: 36, active: false }]
// ]

Dies wird ein Array aus zwei Arrays zurückgeben, wobei das erste Array alle Elemente enthält, für die die bereitgestellte Funktion true zurückgibt, und das zweite Array alle Elemente enthält, für die die bereitgestellte Funktion false zurückgibt.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab "Partition Array in Two" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.