Tentu saja, Object.keys()
adalah cara terbaik untuk mendapatkan kunci Object. Jika itu tidak tersedia di lingkungan Anda, itu dapat shimmed sepele menggunakan kode seperti dalam contoh Anda (kecuali Anda harus mempertimbangkan loop Anda akan beralih ke semua properti di rantai prototipe, tidak seperti Object.keys()
perilaku).
Namun, kode contoh Anda ...
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
for (var key in foo) {
keys.push(key);
}
jsFiddle .
... dapat dimodifikasi. Anda dapat melakukan tugas tepat di bagian variabel .
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [], i = 0;
for (keys[i++] in foo) {}
jsFiddle .
Tentu saja, perilaku ini berbeda dengan apa yang Object.keys()
sebenarnya dilakukan ( jsFiddle ). Anda cukup menggunakan shim pada dokumentasi MDN .
if(foo.hasOwnProperty(key))
, itulah yang akan saya lakukan. Atau, gunakan$.map
.