js 数组用 for in 循环
今天写数组循环的时候隐约觉得不管object还是array都用forin循环不就得了,写的还少。。哈哈,不过好像在哪里看过不要这样做,查了下资料,综合一下原因,不要使用forin循环数组哦。
-
数组是跳跃型的
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。。。。。
} -
数组被添加了其他属性
Array.prototype.foo = 1;
var a = [1, 2, 3, 4, 5];
for (var x in a){
//foo也会被循环出来,不是我想要的。。。。
} -
数组顺序变化了
var array = [];
array[2] = 'c';
array[1] = 'b';
array[0] = 'a';
for (var p in array) {
//在某些浏览器上p 可能顺序是 "2", "1" and "0"
}