Start · Sprachen · JavaScript · Referenz · Object.keys()

Object.keys()

Methode

Die statische Methode <code>Object.keys()</code> gibt ein Array der eigenen aufzählbaren, string-basierten Eigenschaftsnamen eines Objekts zurück.

Kategorie: method-property

Signatur

Object.keys(obj)

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

Typ
Array<string>
Beschreibung
Ein Array von Strings, die die eigenen aufzählbaren string-basierten Eigenschaftsschlüssel des gegebenen Objekts darstellen.

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

Wenn Sie alle eigenen string-basierten Eigenschaften einschließlich der nicht aufzählbaren benötigen, siehe 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.