สำหรับวัตถุส่วนใหญ่ให้ใช้for .. in
:
for (let key in yourobject) {
console.log(key, yourobject[key]);
}
ด้วย ES6 หากคุณต้องการทั้งคีย์และค่าพร้อมกันให้ทำ
for (let [key, value] of Object.entries(yourobject)) {
console.log(key, value);
}
เพื่อหลีกเลี่ยงการบันทึกคุณสมบัติที่สืบทอดให้ตรวจสอบกับhasOwnProperty :
for (let key in yourobject) {
if (yourobject.hasOwnProperty(key)) {
console.log(key, yourobject[key]);
}
}
คุณไม่จำเป็นต้องตรวจสอบhasOwnProperty
เมื่อทำการวนกุญแจถ้าคุณใช้วัตถุอย่างง่าย (ตัวอย่างเช่นคุณทำด้วยตัวเอง{}
)
เอกสาร MDN นี้อธิบายเพิ่มเติมโดยทั่วไปเกี่ยวกับวิธีจัดการกับวัตถุและคุณสมบัติ
หากคุณต้องการที่จะทำ "ในชิ้น" ที่ดีที่สุดคือการแยกกุญแจในอาร์เรย์ เนื่องจากไม่รับประกันการสั่งซื้อนี่เป็นวิธีที่เหมาะสม ในเบราว์เซอร์สมัยใหม่คุณสามารถใช้
let keys = Object.keys(yourobject);
เพื่อให้เข้ากันได้มากขึ้นคุณควรทำสิ่งนี้:
let keys = [];
for (let key in yourobject) {
if (yourobject.hasOwnProperty(key)) keys.push(key);
}
จากนั้นคุณสามารถทำซ้ำคุณสมบัติของคุณตามดัชนีyourobject[keys[i]]
::
for (let i=300; i < keys.length && i < 600; i++) {
console.log(keys[i], yourobject[keys[i]]);
}