Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ทำไมการใช้ Loop 'for...in' ใน JavaScript Array Iteration จึงเป็นความคิดที่ไม่ดี

ในส่วนใหญ่ ควรใช้ 'for' Loop ธรรมดา แทน "for...in" Loop เพราะ "for...in" คืนค่า Indexes และไม่สนใจ Leftover Indexes ในขณะที่ "for" Loop ธรรมดาแสดง Values และใน Leftover Indexes จะมีค่า 'undefined' เพื่อไม่ให้ Developer 混淆

Syntax-1

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

Syntax สำหรับ "for...in" Loop

Syntax-2

for () { // code };

Syntax สำหรับ "for" Loop ธรรมดา

ตัวอย่างที่ 1

ในตัวอย่างนี้ Array "num" เดิมมี 5 ตัวเลข (Indexes 0-4) เมื่อเพิ่ม Index 7 ที่ห่างจาก Index 'four' เข้า Array ต่อเนื่อง Indexes ถูก Execute โดยไม่แจ้งเตือน Leftover Indexes (5 และ 6) ไม่ใช่กรณีของ Normal "for" Loop อาจทำให้ Developer หงุดหงิด

<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" Loop ใน Normal "for" Loop แสดง Values แทน Indexes และใน Leftover Indexes ค่า undefined จะ Execute เพื่อไม่ให้ Developer หงุดหงิด

<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