2012-12-11 6 views
1

제외하고는 주요 브라우저에서 내 코드 작동하지 않습니다 : 파이어 폭스에서파이어 폭스

<script type="text/javascript"> 
for each (var movie in ['Endhiran The Robot','Shivaji The Boss','Anbulla Rajinikanth']) 
    document.writeln(movies + "<br/>"); 
</script> 

을, 나는 for each가 작동하지 않는,

Endhiran The Robot 
Shivaji The Boss 
Anbulla Rajinikanth 

그러나 IE9Chrome Version 23.0.1271.95 m에 출력을 얻고있다 문서에 아무 것도 쓰여 있지 않음

+0

'for each'는 단지'for'이어야합니다. –

+0

btw, var'movies'는'movie'이어야합니다, 맞습니까? 'document.writeln' /'document.write'를 전혀 사용하지 말아야합니다. –

+0

@ TimBüthe, Thanks. 편집하고 '영화'로 바꿀 것입니다. 하나의 의심, 나는'for each '대신에'for'을 사용했는데'movie names '대신'0,1,2 '로 표시되는'output'을 사용했습니다. – User1674987

답변

3

: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/for_each...in

, 당신은 일반 for 루프를 사용하여 배열을 반복하기 JavaScript에서 for each이 아니며 표준이 아닌 확장 프로그램입니다.

잘하지 오래된 것들에 비록 물론 현대적인 브라우저에서 지원되는 새로운 ES5 forEach function,있다 :

['Endhiran The Robot','Shivaji The Boss','Anbulla Rajinikanth'].forEach(function(movie) { 
    document.writeln(movie + "<br/>"); 
}); 

몇 가지 다른 옵션을 통해 여기에 스택 오버플로 this other answer에. 질문에 jQuery가 포함되어 있지만 대답은 일반 JavaScript와 jQuery 옵션 모두를 다룹니다.

+0

실제로, 'for each'는 실제로 표준 확장 프로그램이었습니다. ECMA-357 표준의 일부입니다. –

+0

@BorisZbarsky : 흥미 롭습니다! 그러나 357 - XML ​​용 ECMAScript는 [262] (http://www.ecma-international.org/publications/standards/Ecma-262.htm)이 아닙니다. ;-) –

+0

물론입니다. 나는 그것이 ECMA-262의 일부라고 말하지 않았다. 간단히 말하자면 ECMA-262를 확장 한 표준을 발표 한 것입니다. ;) –

4

for each 구성은 ECMAScript 언어의 확장입니다. 이것은 널리 지원되지 않는 E4X 사양에 정의되어 있습니다.

는 난 단지 파이어 폭스는 HTML 스크립트 소우주에 지원하는 것을 생각하고는 더 이상 사용되지 :이

var movies = ['Endhiran The Robot', 'Shivaji The Boss', 'Anbulla Rajinikanth']; 
for (var i = 0; i < movies.length; ++i) { 
    document.writeln(movies[i] + "<br/>"); 
} 
+0

그래서'firefox'만으로'각각의 '건설을 허용하고 있습니다. – User1674987

+0

@universal : 내 편집 된 답변을 참조하십시오. –