Einführung
In diesem Lab werden wir untersuchen, wie man die pickBy()-Funktion verwendet, um ein neues Objekt zu erstellen, das nur aus den Schlüssel-Wert-Paaren besteht, für die eine gegebene Funktion true zurückgibt. Diese Funktion kann in Situationen nützlich sein, in denen Sie bestimmte Eigenschaften aus einem Objekt basierend auf bestimmten Kriterien filtern müssen. Wir werden lernen, wie man Object.keys(), Array.prototype.filter() und Array.prototype.reduce() verwendet, um diese Aufgabe zu erfüllen.
Funktion, um Objekt-Schlüssel auszuwählen, die einer bestimmten Bedingung entsprechen
Um Objekt-Schlüssel auszuwählen, die einer bestimmten Bedingung entsprechen, verwenden Sie die pickBy()-Funktion. Diese Funktion erstellt ein neues Objekt, das aus den Eigenschaften besteht, für die die gegebene Funktion einen wahren Wert zurückgibt.
- Verwenden Sie
Object.keys()undArray.prototype.filter(), um die Schlüssel zu entfernen, für diefneinen falschen Wert zurückgibt. - Verwenden Sie
Array.prototype.reduce(), um die gefilterten Schlüssel wieder in ein Objekt mit den entsprechenden Schlüssel-Wert-Paaren umzuwandeln. - Die Callback-Funktion wird mit zwei Argumenten aufgerufen: (value, key).
Hier ist der Code für die pickBy()-Funktion:
const pickBy = (obj, fn) =>
Object.keys(obj)
.filter((k) => fn(obj[k], k))
.reduce((acc, key) => ((acc[key] = obj[key]), acc), {});
Sie können diese Funktion verwenden, um Schlüssel auszuwählen, die einer Bedingung entsprechen. Beispiel:
pickBy({ a: 1, b: "2", c: 3 }, (x) => typeof x === "number");
// { 'a': 1, 'c': 3 }
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Pick Matching Object Keys" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.