Baseline Widely available
Die statische Methode Object.entries()
gibt ein Array der eigenen aufzählbaren, string-basierten Schlüssel-Wert-Paare eines Objekts zurück.
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 Parameter 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 Schlüssel der Eigenschaft (immer ein String) und das zweite Element ist der Wert der Eigenschaft.
BeschreibungObject.entries()
gibt ein Array zurück, dessen Elemente Arrays sind, die den aufzählbaren, string-basierten Schlüssel-Wert-Paaren entsprechen, die direkt auf dem object
gefunden wurden. Dies ist dasselbe wie die Iteration 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 entspricht der, die durch eine for...in
Schleife bereitgestellt wird.
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()
.
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
Nicht-Objekt-Argumente werden zu Objekten konvertiert. undefined
und null
können nicht zu Objekten konvertiert werden und werfen sofort einen TypeError
. Nur Strings können eigene aufzählbare Eigenschaften haben, während alle anderen Primitiven 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)); // []
Ein Objekt in eine Map umwandeln
Der Map()
Konstruktor akzeptiert ein iterierbares Objekt von entries
. Mit Object.entries
können Sie einfach von einem Object
zu einer Map
konvertieren:
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
Mit Array-Destrukturierung können Sie einfach über 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 Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4