为什么我的for-in循环的循环次数是我的数组的两倍?

时间:2012-07-12 00:04:52

标签: javascript dom loops for-in-loop

我使用for-in循环来迭代两个元素的数组,但它就像它的循环两次。

我在这里有一个例子:http://jsbin.com/etoyac/8/

1 个答案:

答案 0 :(得分:4)

这是因为从getElementsByTagName返回的结果不是一个简单的数组 - 它是一个 NodeList 而且它是“实时”的。您对DOM所做的更新会立即反映在列表中。

您可以在Array原型上使用“slice”方法将NodeList转换为数组:

var slideArr = [].slice.call(slides, 0);

此外,您应该使用数字索引遍历数组(或NodeList):

for (var slideIndex = 0; slideIndex < slideArr.length; ++slideIndex) {