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とkPrimeのクイックアンサーに感謝します。それは理にかなっており、Array.each
MooToolsによる追加は反復するためのはるかにクリーンな方法です!
今はずっと良く見えます:
myTabs.each(function(item) {
var tab = new Tab(item[0], item[1]);
console.log(item);
});