ตั้งแต่ฉันเริ่มดูมัน:
var data = [{
"id": "1",
"msg": "hi",
"tid": "2013-05-05 23:35",
"fromWho": "hello1@email.se"
}, {
"id": "2",
"msg": "there",
"tid": "2013-05-05 23:45",
"fromWho": "hello2@email.se"
}]
และฟังก์ชั่นนี้
var iterateData =function(data){ for (var key in data) {
if (data.hasOwnProperty(key)) {
console.log(data[key].id);
}
}};
คุณสามารถโทรได้เช่นนี้
iterateData(data); // write 1 and 2 to the console
อัปเดตหลังจากที่คอมเม้นท์
ในฐานะที่เป็นเอริคชี้ให้เห็นห่วงสำหรับอาร์เรย์ที่สามารถมีผลที่ไม่คาดคิด คำถามที่อ้างอิงมีการอภิปรายยาวเกี่ยวกับข้อดีและข้อเสียfor in
ทดสอบด้วยสำหรับ (var i ...
แต่ดูเหมือนว่า follwing ค่อนข้างประหยัด:
for(var i = 0; i < array.length; i += 1)
แม้ว่าการทดสอบในโครเมียมจะมีผลดังต่อไปนี้
var ar = [];
ar[0] = "a";
ar[1] = "b";
ar[4] = "c";
function forInArray(ar){
for(var i = 0; i < ar.length; i += 1)
console.log(ar[i]);
}
// calling the function
// returns a,b, undefined, undefined, c, undefined
forInArray(ar);
ทดสอบด้วย .forEach()
อย่างน้อยใน chrome 30 จะทำงานอย่างที่คาดไว้
var logAr = function(element, index, array) {
console.log("a[" + index + "] = " + element);
}
ar.forEach(logAr); // returns a[0] = a, a[1] = b, a[4] = c
การเชื่อมโยง