Object.entries()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die statische Methode Object.entries() gibt ein Array der eigenen aufzählbaren, string-basierten Schlüssel-Wert-Paare eines Objekts zurück.

Probieren Sie es aus

const object1 = {
  a: "somestring",
  b: 42,
};

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

// Expected output:
// "a: somestring"
// "b: 42"

Syntax

js
Object.entries(obj)

Parameter

obj

Ein Objekt.

Rückgabewert

Ein Array der eigenen aufzählbaren, string-basierten Schlüssel-Wert-Paare des angegebenen Objekts. Jedes Schlüssel-Wert-Paar ist ein Array mit zwei Elementen: Das erste Element ist der Eigenschaftsschlüssel (immer ein String), und das zweite Element ist der Eigenschaftswert.

Beschreibung

Object.entries() gibt ein Array zurück, dessen Elemente Arrays entsprechen, die mit den aufzählbaren Schlüssel-Wert-Paaren direkt auf dem object übereinstimmen. Dies entspricht der Iteration mit einer for...in-Schleife, mit dem Unterschied, dass eine for...in-Schleife auch Eigenschaften in der Prototypenkette auflistet. Die Reihenfolge des von Object.entries() zurückgegebenen Arrays entspricht der, die von einer for...in-Schleife geliefert wird.

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

Beispiele

Verwendung von Object.entries()

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'] ]

Verwendung von Object.entries() auf primitiven Werten

Argumente, die keine Objekte sind, werden zu Objekten konvertiert. undefined und null können nicht zu Objekten konvertiert werden und werfen sofort eine TypeError. Nur Strings können eigene aufzählbare Eigenschaften haben, während alle anderen primitiven Werte ein leeres Array zurückgeben.

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)); // []

Konvertierung eines Objekts in eine Map

Der Konstruktor Map() akzeptiert ein Iterable von entries. Mit Object.entries können Sie einfach von Object zu Map konvertieren:

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

Iteration über ein Objekt

Durch die Verwendung von Array-Dekonstruktion können Sie Objekte einfach 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

Specification
ECMAScript® 2025 Language Specification
# sec-object.entries

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
entries

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch