Object.keys()
Die statische Methode Object.keys()
gibt ein Array der aufzählbaren, direkt auf einem Objekt vorhandenen, string-gekennzeichneten Eigenschaftsschlüssel zurück.
Probieren Sie es aus
Syntax
Object.keys(obj)
Parameter
obj
-
Ein Objekt.
Rückgabewert
Ein Array von Strings, das die aufzählbaren, string-gekennzeichneten Eigenschaftsschlüssel des gegebenen Objekts darstellt.
Beschreibung
Object.keys()
gibt ein Array zurück, dessen Elemente Strings sind, die den aufzählbaren, string-gekennzeichneten Eigenschaftsnamen entsprechen, die direkt auf dem object
gefunden werden. Dies ist dasselbe wie das Iterieren mit einer for...in
Schleife, außer dass eine for...in
Schleife auch Eigenschaften in der Prototypkette aufzählt. Die Reihenfolge des von Object.keys()
zurückgegebenen Arrays ist dieselbe wie die, 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()
// Simple 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-gekennzeichneten, direkt vorhandenen Eigenschaften, einschließlich nicht-auflösbarer, benötigen, siehe Object.getOwnPropertyNames()
.
Verwendung von Object.keys() auf Primitivwerten
Nicht-Objekt-Argumente 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 Primitivwerte 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 Language Specification # sec-object.keys |
Browser-Kompatibilität
BCD tables only load in the browser