js 数组用 for in 循环

今天写数组循环的时候隐约觉得不管object还是array都用forin循环不就得了,写的还少。。哈哈,不过好像在哪里看过不要这样做,查了下资料,综合一下原因,不要使用forin循环数组哦。

1. 数组是跳跃型的

var a = [];
a[5] = 5;
for (var i = 0; i < a.length; i++) {
 //会按预想从零循环到5
}

var a = [];
a[5] = 5;
for (var x in a) {
//只会循环index5。。。。。
}

2. 数组被添加了其他属性

Array.prototype.foo = 1;
var a = [1, 2, 3, 4, 5];
for (var x in a){
//foo也会被循环出来,不是我想要的。。。。
}

3. 数组顺序变化了

var array = [];
array[2] = 'c';
array[1] = 'b';
array[0] = 'a';
for (var p in array) {
  //在某些浏览器上p 可能顺序是 "2", "1" and "0"
}
如果我的文章对您有帮助
欢迎打赏(。・ω・)

Zhang Xiao

Read more posts by this author.

beijing