為什麼使用“for…in”進行陣列迭代在javascript中是個壞主意?
在 JavaScript 中將 for..in 迴圈與陣列迭代一起使用是個壞主意,因為有如下行為 −
使用方法常規迭代迴圈 −
示例
let arr = []
arr[4] = 5
for (let i = 0; i < arr.length; i ++) {
console.log(arr[i])
}輸出
undefined undefined undefined undefined 5
如果我們使用 for in 結構對這個陣列進行迭代,我們會得到 −
示例
let arr = []
arr[4] = 5
for (let i in arr) {
console.log(arr[i])
}輸出
5
請注意,陣列的長度是 5,但它仍然只在一個數組值上進行迭代。
出現這種情況是因為 for-in 語句的目的是列舉物件屬性。此語句將向上進入原型鏈,還會列舉繼承的屬性,而這種行為有時並不可取。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP