Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Object.entries()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2017 browserübergreifend verfügbar.

Die statische Methode Object.entries() gibt ein Array mit den Schlüssel-Wert-Paaren der eigenen, aufzählbaren Eigenschaften eines Objekts zurück, deren Schlüssel Strings sind.

Probieren Sie es aus

const object = {
  a: "some string",
  b: 42,
};

for (const [key, value] of Object.entries(object)) {
  console.log(`${key}: ${value}`);
}

// Expected output:
// "a: some string"
// "b: 42"

Syntax

js
Object.entries(obj)

Parameter

obj

Ein Objekt.

Rückgabewert

Ein Array mit den Schlüssel-Wert-Paaren der eigenen, aufzählbaren Eigenschaften des angegebenen Objekts, deren Schlüssel Strings sind. Jedes Schlüssel-Wert-Paar ist ein Array mit zwei Elementen: Das erste Element ist der Eigenschaftsschlüssel (immer ein String), das zweite der Eigenschaftswert.

Beschreibung

Object.entries() gibt ein Array zurück, dessen Elemente Arrays sind, die den eigenen, aufzählbaren Schlüssel-Wert-Paaren von object entsprechen, deren Schlüssel Strings sind. Das entspricht der Iteration mit einer for...in-Schleife, mit dem Unterschied, dass eine for...in-Schleife auch Eigenschaften in der Prototypkette aufzählt. Die Reihenfolge der Elemente im von Object.entries() zurückgegebenen Array entspricht der Reihenfolge bei einer for...in-Schleife.

Wenn Sie nur die Eigenschaftsschlüssel benötigen, verwenden Sie stattdessen Object.keys(). Wenn Sie nur die Eigenschaftswerte benötigen, verwenden Sie stattdessen Object.values().

Beispiele

Object.entries() verwenden

js
const obj = { foo: "bar", baz: 42 };
console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]

const arrayLike = { 0: "a", 1: "b", 2: "c" };
console.log(Object.entries(arrayLike)); // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]

const randomKeyOrder = { 100: "a", 2: "b", 7: "c" };
console.log(Object.entries(randomKeyOrder)); // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]

// getFoo is a non-enumerable property
const myObj = Object.create(
  {},
  {
    getFoo: {
      value() {
        return this.foo;
      },
    },
  },
);
myObj.foo = "bar";
console.log(Object.entries(myObj)); // [ ['foo', 'bar'] ]

Object.entries() mit primitiven Werten verwenden

Argumente, die keine Objekte sind, werden in Objekte umgewandelt. undefined und null können nicht in Objekte umgewandelt werden und lösen sofort einen TypeError aus. Nur Strings können eigene, aufzählbare Eigenschaften haben; bei allen anderen primitiven Werten wird ein leeres Array zurückgegeben.

js
// Strings have indices as enumerable own properties
console.log(Object.entries("foo")); // [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]

// Other primitives except undefined and null have no own properties
console.log(Object.entries(100)); // []

Ein Objekt in eine Map umwandeln

Der Map()-Konstruktor akzeptiert ein iterierbares Objekt mit entries. Mit Object.entries können Sie ein Object einfach in eine Map umwandeln:

js
const obj = { foo: "bar", baz: 42 };
const map = new Map(Object.entries(obj));
console.log(map); // Map(2) {"foo" => "bar", "baz" => 42}

Über ein Objekt iterieren

Mit Array-Destrukturierung können Sie einfach über Objekte iterieren.

js
// Using for...of loop
const obj = { a: 5, b: 7, c: 9 };
for (const [key, value] of Object.entries(obj)) {
  console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
}

// Using array methods
Object.entries(obj).forEach(([key, value]) => {
  console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
});

Spezifikationen

Spezifikation
ECMAScript® 2027 Language Specification
# sec-object.entries

Browser-Kompatibilität

Siehe auch