Signatur
Beschreibung
Die statische Methode Object.keys() gibt ein Array der eigenen aufzählbaren, string-basierten Eigenschaftsnamen eines gegebenen Objekts zurück.
Object.keys() gibt ein Array zurück, dessen Elemente Strings sind, die den aufzählbaren string-basierten Eigenschaftsnamen entsprechen, die direkt auf object gefunden werden. Dies entspricht dem Iterieren mit einer for...in-Schleife, außer dass eine for...in-Schleife auch Eigenschaften in der prototype-Kette aufzählt. Die Reihenfolge des von Object.keys() zurückgegebenen Arrays ist dieselbe wie die 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().
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $obj Pflicht | Object | — | Ein Objekt. |
Rückgabewert
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']
Verwendung von Object.keys() mit Primitiven
// 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)); // []
// Wichtig · Fallstricke
Object.getOwnPropertyNames(). Nicht-Objekt-Argumente werden zu Objekten koerziert. undefined und null können nicht zu Objekten koerziert werden und werfen sofort einen TypeError. Nur Strings können eigene aufzählbare Eigenschaften haben, während alle anderen Primitive ein leeres Array zurückgeben. Hinweis: In ES5 warf das Übergeben eines Nicht-Objekts an Object.keys() einen TypeError.