Holen Sie sich ein Array von Objektschlüsseln

Verwenden Sie Object.keys :

var foo = {
  'alpha': 'puffin',
  'beta': 'beagle'
};

var keys = Object.keys(foo);
console.log(keys) // ['alpha', 'beta'] 
// (or maybe some other order, keys are unordered).

Dies ist eine ES5-Funktion. Dies bedeutet, dass es in allen modernen Browsern funktioniert, aber nicht in älteren Browsern.

Der ES5-Shim hat eine Implementierung von Object.keys du kannst stehlen


Sie können den $.map von jQuery verwenden .

var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' },
keys = $.map(foo, function(v, i){
  return i;
});

Natürlich Object.keys() ist das beste Möglichkeit, die Schlüssel eines Objekts zu erhalten. Wenn es in Ihrer Umgebung nicht verfügbar ist, kann es ganz einfach shimed werden Verwenden Sie Code wie in Ihrem Beispiel (außer Sie müssten berücksichtigen, dass Ihre Schleife im Gegensatz zu Object.keys() über alle Eigenschaften nach oben in der Prototypkette iteriert 's Verhalten).

Ihr Beispielcode jedoch...

var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
for (var key in foo) {
    keys.push(key);
}

jsFiddle.

...könnte geändert werden. Sie können die Zuweisung direkt in der Variablen vornehmen Teil.

var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [], i = 0;
for (keys[i++] in foo) {}

jsFiddle.

Natürlich unterscheidet sich dieses Verhalten von Object.keys() tatsächlich (jsFiddle). Sie könnten einfach das Shim in der MDN-Dokumentation verwenden.