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 mit den eigenen aufzählbaren, string-basierten Eigenschaften eines Objekts zurück.
Probieren Sie es aus
const object1 = {
a: "somestring",
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 Strings, das die eigenen aufzählbaren, string-basierten Eigenschaftsschlüssel des angegebenen Objekts darstellt.
Beschreibung
Object.keys()
gibt ein Array zurück, dessen Elemente Strings sind, die den aufzählbaren, string-basierten Eigenschaftsnamen entsprechen, die direkt auf dem object
gefunden werden. Dies entspricht dem Iterieren mit einer for...in
Schleife, außer dass eine for...in
Schleife auch Eigenschaften in der Prototyp-Kette aufzählt. Die Reihenfolge des Arrays, das von Object.keys()
zurückgegeben wird, entspricht der, die 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 string-basierten eigenen Eigenschaften, einschließlich nicht aufzählbarer Eigenschaften, benötigen, siehe Object.getOwnPropertyNames()
.
Verwendung von Object.keys() bei primitiven Werten
Nicht-Objektargumente werden in Objekte umgewandelt. undefined
und null
können nicht in Objekte umgewandelt 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.keys("foo")); // ['0', '1', '2']
// Other primitives except undefined and null have no own properties
console.log(Object.keys(100)); // []
Hinweis:
In ES5 warf das Übergeben eines Nicht-Objekts an Object.keys()
einen TypeError
.
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-object.keys |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
keys |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support