数组的遍历,有一些朋友喜欢用for…in来遍历,但是存在很多问题,今天俺就跟大家一起来总结一下问题是什么
原因
我们来看以下正确的代码:
/** *2019/8/26 *前端教程:https://www.pipipi.net/ */ var a = []; // 创建一个空数组 a[5] = 5; for (var i = 0; i < a.length; i++) { console.log(a[i]); } /* 将会输出以下结果: undefined undefined undefined undefined undefined 5 */
当我们使用for…in就会忽略一些信息,例如以下代码,产生与上面的代码完全不一样的结果:
var a = []; a[5] = 5; for (var x in a) { // 只显示了5,而忽略掉了0-4 console.log(x); } /* 将会输出以下结果: 5 */
当我们需要依赖一些Javascript库,for…in也会有一些问题,例如一下代码:
Array.prototype.foo = 1; var a = [1, 2, 3, 4, 5]; for (var x in a){ console.log(x); } /* 将会输出以下结果: 0 1 2 3 4 foo */