1. 犀牛前端部落首页
  2. Javascript百科

不要使用for...in来遍历数组

数组的遍历,有一些朋友喜欢用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
*/

 

原创文章,作者:犀牛前端部落,如若转载,请注明出处:https://www.pipipi.net/2569.html

发表评论

登录后才能评论