Filterung von Übereinstimmungen und unspezifizierten Werten

Beginner

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

Einführung

In diesem Lab werden wir die JavaScript-Programmierung erkunden und lernen, wie wir die Methoden Array.prototype.reduce(), Array.prototype.filter() und Array.prototype.map() zusammen verwenden, um eine Funktion zu erstellen, die ein Array von Objekten anhand einer Bedingung filtert und auch unspezifizierte Schlüssel herausfiltert. Dieses Lab wird unseren Verständnis der funktionalen Programmierung in JavaScript und der effizienten Manipulation von Objektarrays helfen.

Objekte nach Bedingung und Schlüsseln filtern

Um ein Array von Objekten anhand einer Bedingung zu filtern und gleichzeitig unspezifizierte Schlüssel auszublenden, verwenden Sie die Funktion reducedFilter().

Hier sind die Schritte, die Sie zu befolgen haben:

  1. Verwenden Sie Array.prototype.filter(), um das Array anhand des Prädikats fn zu filtern, sodass es die Objekte zurückgibt, für die die Bedingung einen wahren Wert zurückgegeben hat.

  2. Verwenden Sie Array.prototype.map() auf dem gefilterten Array, um das neue Objekt zurückzugeben.

  3. Verwenden Sie Array.prototype.reduce(), um die Schlüssel auszublenden, die nicht als keys-Argument übergeben wurden.

const reducedFilter = (data, keys, fn) =>
  data.filter(fn).map((el) =>
    keys.reduce((acc, key) => {
      acc[key] = el[key];
      return acc;
    }, {})
  );

Hier ist ein Beispiel für die Verwendung der reducedFilter()-Funktion:

const data = [
  {
    id: 1,
    name: "john",
    age: 24
  },
  {
    id: 2,
    name: "mike",
    age: 50
  }
];

reducedFilter(data, ["id", "name"], (item) => item.age > 24);
// Ausgabe: [{ id: 2, name:'mike'}]

Um mit der Programmierung zu beginnen, öffnen Sie das Terminal/SSH und geben Sie node ein.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab zu Filterung von Übereinstimmungen und unspezifizierten Werten abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.