แน่นอนว่าObject.keys()
เป็นวิธีที่ดีที่สุดในการรับกุญแจของวัตถุ ถ้ามันไม่สามารถใช้ได้ในสภาพแวดล้อมของคุณก็สามารถนิดshimmedใช้รหัสเช่นในตัวอย่างของคุณ (ยกเว้นคุณจะต้องคำนึงถึงห่วงของคุณจะย้ำกว่าคุณสมบัติทั้งหมดขึ้นห่วงโซ่ต้นแบบซึ่งแตกต่างจากObject.keys()
พฤติกรรม)
อย่างไรก็ตามรหัสตัวอย่างของคุณ ...
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
for (var key in foo) {
keys.push(key);
}
jsFiddle
... สามารถแก้ไขได้ คุณสามารถทำงานที่ได้รับมอบหมายในส่วนของตัวแปร
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [], i = 0;
for (keys[i++] in foo) {}
jsFiddle
แน่นอนพฤติกรรมนี้แตกต่างจากสิ่งที่ทำObject.keys()
จริง ( jsFiddle ) คุณสามารถใช้shim กับเอกสาร MDNได้
if(foo.hasOwnProperty(key))
นั่นคือสิ่งที่ฉันจะทำ$.map
หรือใช้