Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

เหตุใดการใช้ “for…in” กับการวนซ้ำอาร์เรย์จึงเป็นแนวคิดที่ไม่ดีในจาวาสคริปต์


การใช้ for..in ลูปใน JavaScript ที่มีการวนซ้ำอาร์เรย์เป็นความคิดที่ไม่ดีเนื่องจากพฤติกรรมดังต่อไปนี้ −

ใช้การวนซ้ำแบบปกติ

ตัวอย่าง

let arr = []
arr[4] = 5
for (let i = 0; i < arr.length; i ++) {
   console.log(arr[i])
}

ผลลัพธ์

undefined
undefined
undefined
undefined
5

ถ้าเราวนซ้ำอาร์เรย์นี้โดยใช้ for in construct เราจะได้ −

ตัวอย่าง

let arr = []
arr[4] = 5
for (let i in arr) {
   console.log(arr[i])
}

ผลลัพธ์

5

โปรดทราบว่าความยาวของอาร์เรย์คือ 5 แต่ยังคงวนซ้ำมากกว่าหนึ่งค่าในอาร์เรย์

สิ่งนี้เกิดขึ้นเนื่องจากจุดประสงค์ของคำสั่ง for-in คือการแจกแจงคุณสมบัติของอ็อบเจ็กต์ คำสั่งนี้จะขึ้นในสายต้นแบบ รวมถึงการแจกแจงคุณสมบัติที่สืบทอดมา ซึ่งบางครั้งไม่ต้องการ