为什么使用“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