Object.keys()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die statische Methode Object.keys() gibt ein Array mit den Namen der eigenen, aufzählbaren Eigenschaften eines Objekts zurück, deren Schlüssel Strings sind.
Probieren Sie es aus
const object = {
a: "some string",
b: 42,
c: false,
};
console.log(Object.keys(object));
// Expected output: Array ["a", "b", "c"]
Syntax
Object.keys(obj)
Parameter
obj-
Ein Objekt.
Rückgabewert
Ein Array von Strings, die die Schlüssel der eigenen, aufzählbaren Eigenschaften des angegebenen Objekts darstellen, deren Schlüssel Strings sind.
Beschreibung
Object.keys() gibt ein Array zurück, dessen Elemente den Namen der aufzählbaren Eigenschaften entsprechen, die direkt auf object definiert sind und deren Schlüssel Strings sind. Dies entspricht der Iteration mit einer for...in-Schleife, mit dem Unterschied, dass eine for...in-Schleife auch Eigenschaften in der Prototypkette aufzählt. Die Reihenfolge im von Object.keys() zurückgegebenen Array entspricht der Reihenfolge bei einer for...in-Schleife.
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
>Object.keys() verwenden
// 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 eigenen Eigenschaften mit String-Schlüsseln benötigen, einschließlich der nicht aufzählbaren, lesen Sie Object.getOwnPropertyNames().
Object.keys() mit primitiven Werten verwenden
Argumente, die keine Objekte sind, werden in Objekte umgewandelt. undefined und null können nicht in Objekte umgewandelt werden und lösen unmittelbar einen TypeError aus. Nur Strings können eigene, aufzählbare Eigenschaften haben; bei allen anderen primitiven Werten wird ein leeres Array zurückgegeben.
// 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 löste die Übergabe eines Werts, der kein Objekt ist, an Object.keys() einen TypeError aus.
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.keys> |