Computer >> Máy Tính >  >> Lập trình >> Javascript

Tại sao sử dụng “for… in” với lặp lại mảng là một ý tưởng tồi trong javascript?

Sử dụng vòng lặp for..in trong JavaScript với phép lặp mảng là một ý tưởng tồi vì hành vi sau -

Sử dụng các vòng lặp bình thường -

Ví dụ

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

Đầu ra

undefined
undefined
undefined
undefined
5

Nếu chúng ta đã lặp lại mảng này bằng cách sử dụng cấu trúc for in, chúng ta sẽ nhận được -

Ví dụ

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

Đầu ra

5

Lưu ý rằng độ dài của mảng là 5, nhưng độ dài này vẫn lặp lại chỉ trên một giá trị trong mảng.

Điều này xảy ra vì mục đích của câu lệnh for-in là liệt kê các thuộc tính của đối tượng. Câu lệnh này sẽ đi lên trong chuỗi nguyên mẫu, cũng liệt kê các thuộc tính được kế thừa, một điều đôi khi không được mong muốn.