很多人都说在javascript中不要对数组使用"for...in",但是也没有谁能告诉我为什么不能使用。我就想知道为什么。。。


1个回答

我们来看看下面两段代码:

var a = [];
a[5] = 5; 

for (var i=0; i<a.length; i++) {

}


var a = [];
a[5] = 5;
for (x in a) {

}

前一段代码for循环中遍历所有0-5索引,但是后一段代码则会忽略0-4索引。所以说并不是for..in本身有什么问题,只是在上面的情况下很容易被误用。