2013-07-25 2 views
1

가 나는가-에서 자바 스크립트 루프,하지만 난이 작동 키대안 "에 대한"

for(var key in { foo:0, bar:0, blah:0 }) { 
    /* do sth. with the key */ 

} 

에만 관심이있어 -loop하지만 조금 바보 보인다. Firefox는 for-of loop를 제공합니다. 불행히도 모든 브라우저에서 작동하지는 않습니다. 또한 오페라 11에서 그것을 테스트하고 거기에서 작동하지 않습니다.

// only firefox 
for(var key of ["foo", "bar", "blah"]) { 
    /* do sth. with the key */ 

} 

모든 브라우저에서 똑똑한 방법으로 해결할 수 있습니까?

답변

2

(IE8 이상),이 작업을 수행 할 수 있습니다

["foo","bar","blah"].forEach(function(key) { 
    // do something 
}); 

는 IE의 일부 버전에서 지원을 추가하려면 (나는 IE7, 8, 6으로이 허용 생각) :

if(![].forEach) { 
    Array.prototype.forEach = function(callback) { 
     for(var i=0, l=this.length; i<l; i++) callback(this[i]); 
    }; 
} 
+0

+1 나는 당신이 필요하다면 IE 8 지원을 추가하기 위해 Array에서 프로토 타입을 만들 수 있다고 생각합니다. – TGH