Tabii ki, bir Nesnenin anahtarlarını almanın Object.keys()en iyi yolu. Ortamınızda yoksa , örneğinizdeki gibi kod kullanılarak önemsiz bir şekilde takılabilir (ancak, döngünüzün , Object.keys()davranışının aksine, prototip zincirindeki tüm özellikler üzerinde yineleneceğini dikkate almanız gerekir ).
Ancak, örnek kodunuz ...
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
for (var key in foo) {
keys.push(key);
}
jsFiddle .
... değiştirilebilir. Atamayı doğrudan değişken kısımda yapabilirsiniz.
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [], i = 0;
for (keys[i++] in foo) {}
jsFiddle .
Tabii ki, bu davranış Object.keys()gerçekte ne yaptığından farklıdır ( jsFiddle ). MDN belgelerindeki şimi kullanabilirsiniz .
if(foo.hasOwnProperty(key))bunu yapardım. Veya kullanın$.map.