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 March 2017.

Die statische Methode Object.entries() gibt ein Array der eigenen aufzählbaren, mit einem Zeichenfolgen-Schlüssel versehenen Schlüssel-Wert-Paare eines gegebenen Objekts zurück.

Probieren Sie es aus

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

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

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

Syntax

js
Object.entries(obj)

Parameter

obj

Ein Objekt.

Rückgabewert

Ein Array der eigenen aufzählbaren, mit einem Zeichenfolgen-Schlüssel versehenen Schlüssel-Wert-Paare des gegebenen Objekts. Jedes Schlüssel-Wert-Paar ist ein Array mit zwei Elementen: Das erste Element ist der Schlüssel der Eigenschaft (immer eine Zeichenfolge), und das zweite Element ist der Wert der Eigenschaft.

Beschreibung

Object.entries() gibt ein Array zurück, dessen Elemente Arrays sind, die den aufzählbaren, mit einem Zeichenfolgen-Schlüssel versehenen Schlüssel-Wert-Paaren entsprechen, die direkt auf dem object gefunden werden. Dies entspricht dem Iterieren mit einer for...in-Schleife, außer dass eine for...in-Schleife auch Eigenschaften in der Prototypkette aufzählt. Die Reihenfolge des von Object.entries() zurückgegebenen Arrays entspricht der, die von einer for...in-Schleife bereitgestellt wird.

Wenn Sie nur die Schlüssel der Eigenschaften benötigen, verwenden Sie stattdessen Object.keys(). Wenn Sie nur die Werte der Eigenschaften benötigen, verwenden Sie stattdessen 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

Nicht-Objekt-Argumente werden in Objekte umgewandelt. undefined und null können nicht in Objekte umgewandelt werden und führen sofort zu einem TypeError. Nur Zeichenfolgen können eigene aufzählbare Eigenschaften haben, während alle anderen Primitiven 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 Map()-Konstruktor akzeptiert ein iterables Element von entries. Mit Object.entries können Sie leicht von einem Object zu einer 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}

Iterieren durch ein Objekt

Mit Array-Destructuring können Sie einfach durch 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

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

Browser-Kompatibilität

Siehe auch