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

เหตุใดการใช้ลูป "for…in" ในการวนซ้ำอาร์เรย์ JavaScript จึงเป็นความคิดที่ไม่ดี


ในกรณีส่วนใหญ่ ควรใช้ 'for ตามปกติ ' วนซ้ำมากกว่า "สำหรับ...ใน " วนซ้ำเพราะว่า "สำหรับ...ใน " ส่งผลให้ ดัชนี และจะไม่กังวลเกี่ยวกับดัชนีที่เหลือในขณะที่ "สำหรับ . ปกติ" " loop แสดงค่าและในดัชนีที่เหลือ ค่าที่เรียกว่า 'undefined' จะถูกดำเนินการเพื่อให้นักพัฒนาไม่สับสนขณะเขียนโค้ด

ไวยากรณ์-1

for (var x in array) {
// code
};

โค้ดด้านบนเป็นไวยากรณ์สำหรับ "for...in " วนซ้ำ

ไวยากรณ์-2

for () {
// code
};

ด้านบนนี้เป็นไวยากรณ์สำหรับ "สำหรับ ." ปกติ " วนซ้ำ

ตัวอย่าง-1

ในตัวอย่างต่อไปนี้ ในตอนแรก อาร์เรย์ "num " มีเพียง 5 หลัก (ดัชนีตั้งแต่ 0-4) เมื่อดัชนีอื่น 7 ซึ่งอยู่ไกลจากดัชนี 'สี่' ถูกเพิ่มไปยังอาร์เรย์ ดัชนีจะถูกดำเนินการอย่างต่อเนื่องโดยไม่แจ้งอะไรเกี่ยวกับดัชนีที่เหลือ (5 และ 6) ซึ่งไม่ใช่กรณีปกติ "สำหรับ " ลูป นี่อาจทำให้ผู้พัฒนางง

<html>
<body>
<script>
   var num = [1,2,3,4,5];
   num[7] = 7;
   for (var x in num) {
      document.write(x);
      document.write("</br>");
   }
</script>
</body>
</html>

ผลลัพธ์

0
1
2
3
4
7


ตัวอย่าง-2

ในตัวอย่างต่อไปนี้ ไม่เหมือนกับ "for...in " วนซ้ำตามปกติ "สำหรับ " วนซ้ำค่าจะแสดงแทนดัชนีและในดัชนีที่เหลือจะมีค่า ไม่ได้กำหนด ถูกดำเนินการเพื่อไม่ให้ผู้พัฒนางง

<html>
<body>
<script>
   var num = [1,2,3,4,5];
   num[7] = 7;
   for (var i = 0; i < num.length; i++) {
      document.write(num[i]);
      document.write("</br>");
   }
</script>
</body>
</html>

ผลลัพธ์

1
2
3
4
5
undefined
undefined
7