MooTools의 배열을 반복하지만, for..in
루프를 사용하여 배열을 반복 할 때 추가 항목이 표시됩니다. 일반 for
루프를 사용하면 정상적으로 작동합니다. 글로벌 네임 스페이스를 오염시키는 MooTools에 문제가 있습니까? 아니면 여기서 뭔가 잘못하고 있습니까? for..in with MooTools를 사용하는 자바 스크립트 배열 반복 포함
0
1
$family
each
clean
associate
link
contains
extend
getLast
getRandom
include
combine
erase
empty
flatten
hexToRgb
rgbToHex
toJSON
제가 제 이해 :
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)
의 출력은 :
배열로 반복 배열의 각 값에 대한 탭을 만드는 createTabs()
함수가 2 개의 인덱스가 있지만 나머지는 어디에서 오는가?
수정 : Chetan and k Prime에 감사합니다. 그것은 의미가 있으며, MooTools가 추가 한 Array.each
은 훨씬 더 깨끗한 방법입니다!
myTabs.each(function(item) {
var tab = new Tab(item[0], item[1]);
console.log(item);
});
감사 프라임 K, array.each는 훨씬 쉽게 생활 – Anurag
그것은 그 기능을 기반으로 반복 지적해야한다 (예 :'array.each') 정상'for' 또는'보다 훨씬 느립니다 for..in' –
ECMA에 따라 곧 표준 브라우저 기능이 될 것이고 mootools는 네이티브가 있는지 확인합니다. 함수 기반 forEach에 대한 별칭을 정의 할 때 지원합니다. 따라서 성능 저하는 일시적이며 주로 오래된 브라우저에 영향을줍니다. 난 여전히 사용하지 않는 것이 좋습니다 ... 당신이 배열 키가 필요하지 않는 한 배열 걷기 (하지만 그것은 여전히 해킹입니다) –