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, mit einem String indizierten Schlüssel-Werte-Paare eines gegebenen Objekts zurück.
Probieren Sie es aus
Syntax
Object.entries(obj)
Parameter
obj
-
Ein Objekt.
Rückgabewert
Ein Array der eigenen aufzählbaren, mit einem String indizierten Schlüssel-Werte-Paare des gegebenen Objekts. Jedes Schlüssel-Werte-Paar ist ein Array mit zwei Elementen: Das erste Element ist der Eigenschaftsschlüssel (der immer ein String ist), und das zweite Element ist der Eigenschaftswert.
Beschreibung
Object.entries()
gibt ein Array zurück, dessen Elemente Arrays sind, die den aufzählbaren, mit einem String indizierten Schlüssel-Werte-Paaren entsprechen, die direkt auf dem object
gefunden werden. Dies ist dasselbe wie das Iterieren mit einer for...in
Schleife, außer dass eine for...in
Schleife auch Eigenschaften in der Prototypenkette aufzählt. Die Reihenfolge des von Object.entries()
zurückgegebenen Arrays ist dieselbe wie die, die eine for...in
Schleife bietet.
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
Verwendung von Object.entries()
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() bei Primitiven
Argumente, die keine Objekte sind, werden in Objekte konvertiert. undefined
und null
können nicht in Objekte konvertiert werden und werfen sofort einen TypeError
. Nur Strings können eigene aufzählbare Eigenschaften haben, während alle anderen primitiven Werte ein leeres Array zurückgeben.
// 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)); // []
Umwandeln eines Objekts in eine Map
Iterieren durch ein Objekt
Mit Array-Destructuring können Sie einfach durch Objekte iterieren.
// 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 Language Specification # sec-object.entries |
Browser-Kompatibilität
BCD tables only load in the browser