我在 MooTools 中遍历一个数组,但在使用速记for..in
循环遍历数组时看到了其他项目。当我使用常规for
循环时它工作正常。这是 MooTools 污染全局命名空间的问题,还是我在这里做错了什么?
有一个createTabs()
函数可以遍历数组并为数组中的每个值创建一个选项卡:
function createTabs() {
var myTabs = [["First", "a.png"], ["Second", "b.png"]];
for(var i in myTabs) {
var tab = new Tab(myTabs[i][0], myTabs[i][1]);
console.log(i);
}
}
这是的输出console.log(i)
:
0
1
$family
each
clean
associate
link
contains
extend
getLast
getRandom
include
combine
erase
empty
flatten
hexToRgb
rgbToHex
toJSON
我了解前 2 个索引,但其余的来自哪里?
编辑:感谢 Chetan 和 k Prime 的快速回答。这是有道理的,Array.each
MooTools 的添加是一种更简洁的迭代方式!
现在看起来好多了:
myTabs.each(function(item) {
var tab = new Tab(item[0], item[1]);
console.log(item);
});