JavaScript Object.keys, Values, Entries

In diesem Kapitel behandeln wir Object.keys, values und entries. Wir haben bereits über Methoden wie map.keys(), map.values(), map.entries() gesprochen.

Diese Methoden sind universal und werden für Datenstrukturen verwendet. Jedes Mal nach der Erstellung einer Datenstruktur sollten sie auch implementiert werden. Sie werden hauptsächlich für Map, Set und Array verwendet.

Ähnliche Methoden werden auch von einfachen Objekten unterstützt. Nur die Syntax unterscheidet sich ein wenig.

Definition von Object.keys, values und entries

Normalerweise können Sie für einfache Objekte die unten stehenden Methoden verwenden:

  • Zur Rückgabe eines Array von Schlüsseln wird die Methode Object.keys(obj) verwendet.
  • Zur Rückgabe eines Array von Werten wird die Methode Object.values(obj) verwendet.
  • Zur Rückgabe eines Array von [key, value] Paaren wird die Methode Object.entries(obj) verwendet.

Es gibt signifikante Unterschiede im Vergleich zu Map. Diese werden wir hier auch behandeln.

Der erste Unterschied besteht darin, dass wir hier Object.keys(obj) aufrufen müssen und nicht obj.keys().

Der Hauptgrund ist die Vielseitigkeit. Objects gelten als die Wurzel aller JavaScript komplexen Strukturen.

Daher hat ein Objekt wie data, das seine eigene Methode data.values() ausführen kann. Sie können jedoch auch Object.values(data) auf diesem Objekt aufrufen. Eine weitere wesentliche Unterscheidung besteht darin, dass Object.* Methoden echte Arrays zurückgeben können, nicht Iterierende.

Beachten Sie das folgende Beispiel:

Javascript object
let user = { name: "Jane", age: 41 }; console.log(user.name); // Jane console.log(user.age); // 41

Also haben wir in dem oben genannten Beispiel folgendes:

  • Object.keys(user) = ["name", "age"]
  • Object.values(user) = ["Jack", 35]
  • Object.entries(user) = [ ["name","Jack"], ["age",35] ]

Um über Eigenschaftswerte zu iterieren, können Sie Object.values wie folgt verwenden:

Javascript object values
let user = { name: "Jane", age: 41 }; for (let value of Object.values(user)) { console.log(value); // Jane, then 41 }

Die Methoden Object.keys/values/entries haben eine Ähnlichkeit mit der for..in Schleife: Beide ignorieren Eigenschaften, die Symbol(...) als Schlüssel verwenden.

Wenn Sie Symbole benötigen, können Sie die separate Methode Object.getOwnPropertySymbols verwenden, die ein Array zurückgibt, das nur aus symbolischen Schlüsseln besteht.

Transformation von Objekten

Normalerweise verfügen Objekte nicht über die Methoden, die Arrays haben (zum Beispiel filter, map usw.).

Wenn Sie sie verwenden möchten, können Sie die Methode Object.entries anwenden, gefolgt von Object.fromEntries.

Hier ist die Abfolge der Aktionen:

  1. Verwenden Sie Object.entries(obj), um ein Array mit Wert-/Schlüsselpaaren aus obj zu erhalten.
  2. Wenden Sie Array-Methoden auf das Array an.
  3. Wenden Sie Object.fromEntries(array) auf das resultierende Array an, um es wieder in ein Objekt umzuwandeln.

Hier ist ein Beispiel:

Javascript object entries method
let points = { john: 22, ann: 20, jack: 14, }; let doublePoints = Object.fromEntries( // convert to array, map, and then fromEntries returns an object Object.entries(points).map(([key, value]) => [key, value * 2]) ); console.log(doublePoints.john); // 44

Diese Methode ermöglicht robuste Transformationen.

Quizzeit: Testen Sie Ihre Fähigkeiten!

Sind Sie bereit, das Gelernte herauszufordern? Tauchen Sie ein in unsere interaktiven Quizze für ein tieferes Verständnis und eine unterhaltsame Art, Ihr Wissen zu festigen.

Finden Sie das nützlich?