Object.keys()
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 Object.keys()
statische Methode gibt ein Array der eigenen aufzählbaren, zeichenfolgenbasierten Eigenschaftennamen eines gegebenen Objekts zurück.
Probieren Sie es aus
const object1 = { a: "some string", b: 42, c: false, }; console.log(Object.keys(object1)); // Expected output: Array ["a", "b", "c"]
Syntax
Object.keys(obj)
Parameter
obj
-
Ein Objekt.
Rückgabewert
Ein Array von Zeichenfolgen, die die eigenen aufzählbaren, zeichenfolgenbasierten Eigenschaften des gegebenen Objekts darstellen.
Beschreibung
Object.keys()
gibt ein Array zurück, dessen Elemente Strings sind, die den aufzählbaren, zeichenfolgenbasierten Eigenschaftennamen entsprechen, die direkt auf dem object
gefunden werden. Dies ist dasselbe wie das Iterieren mit einer for...in
Schleife, mit dem Unterschied, dass eine for...in
Schleife auch Eigenschaften in der Prototypkette aufzählt. Die Reihenfolge des von Object.keys()
zurückgegebenen Arrays entspricht der, die auch von einer for...in
Schleife bereitgestellt wird.
Wenn Sie die Eigenschaftswerte benötigen, verwenden Sie stattdessen Object.values()
. Wenn Sie sowohl die Eigenschaftsschlüssel als auch die Werte benötigen, verwenden Sie stattdessen Object.entries()
.
Beispiele
Verwendung von Object.keys()
// Basic array const arr = ["a", "b", "c"]; console.log(Object.keys(arr)); // ['0', '1', '2'] // Array-like object const obj = { 0: "a", 1: "b", 2: "c" }; console.log(Object.keys(obj)); // ['0', '1', '2'] // Array-like object with random key ordering const anObj = { 100: "a", 2: "b", 7: "c" }; console.log(Object.keys(anObj)); // ['2', '7', '100'] // getFoo is a non-enumerable property const myObj = Object.create( {}, { getFoo: { value() { return this.foo; }, }, }, ); myObj.foo = 1; console.log(Object.keys(myObj)); // ['foo']
Wenn Sie alle zeichenfolgenbasierten eigenen Eigenschaften, einschließlich nicht-auflösbarer, möchten, siehe Object.getOwnPropertyNames()
.
Verwendung von Object.keys() auf Primitive
Nicht-Objekt-Argumente werden zu Objekten gezwungen. undefined
und null
können nicht zu Objekten gemacht werden und werfen sofort einen TypeError
. Nur Zeichenfolgen 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.keys("foo")); // ['0', '1', '2'] // Other primitives except undefined and null have no own properties console.log(Object.keys(100)); // []
Hinweis: In ES5 führte das Übergeben eines Nicht-Objekts an Object.keys()
zu einem TypeError
.
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-object.keys |