Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

js
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

js
// 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.

js
// 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

Browser-Kompatibilität

Siehe auch