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 statische Methode Object.keys() gibt ein Array der aufzählbaren, eigenen, string-keyed Eigenschaftenamen eines gegebenen Objekts zurück.

Probieren Sie es aus

const object1 = {
  a: "some string",
  b: 42,
  c: false,
};

console.log(Object.keys(object1));
// Expected output: Array ["a", "b", "c"]

Syntax

js
Object.keys(obj)

Parameter

obj

Ein Objekt.

Rückgabewert

Ein Array von Strings, das die aufzählbaren, eigenen, string-keyed Eigenschaftenamen des gegebenen Objekts darstellt.

Beschreibung

Object.keys() gibt ein Array zurück, dessen Elemente Strings sind, die den aufzählbaren, string-keyed Eigenschaftenamen 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 Prototypenkette aufzählt. Die Reihenfolge des von Object.keys() zurückgegebenen Arrays ist die gleiche 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()

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 string-keyed eigenen Eigenschaften, einschließlich nicht-aufläslicher, möchten, siehe Object.getOwnPropertyNames().

Verwendung von Object.keys() auf primitiven Werten

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 Primitiven ein leeres Array zurückgeben.

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 führte das Übergeben eines Nicht-Objekts an Object.keys() zu einem TypeError.

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-object.keys

Browser-Kompatibilität

Siehe auch