ใช้ for..in loops กับ array iteration เป็น bad idea เพราะพฤติกรรมนี้
Normal iteration loops
ตัวอย่าง
let arr = [] arr[4] = 5 for (let i = 0; i < arr.length; i ++) { console.log(arr[i]) }ผลลัพธ์
undefined undefined undefined undefined 5
ถ้า iterate ด้วย for..in
ตัวอย่าง
let arr = [] arr[4] = 5 for (let i in arr) { console.log(arr[i]) }ผลลัพธ์
5
สังเกตว่า array length คือ 5 แต่มัน iterate แค่ค่าเดียว
เพราะ for-in ทำเพื่อ enumerate object properties จะขึ้น prototype chain และ enumerate inherited properties ซึ่งบางครั้งไม่ต้องการ