1

私のコード:

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

Firefoxでは、出力を次のように取得しています

Endhiran The Robot
Shivaji The Boss
Anbulla Rajinikanth

しかし、IE9Chrome Version 23.0.1271.95 mではfor each機能せず、文書には何も書かれていません

4

2 に答える 2

4

for each構造はECMAScript言語の拡張です。これは、広くサポートされていないE4X仕様で定義されています。

FirefoxだけがHTMLスクリプトの小宇宙でそれをサポートしていると思います、そしてそれは非推奨になりました:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/for_each...in

配列を反復処理するには、単純なforループを使用できます。

var movies = ['Endhiran The Robot', 'Shivaji The Boss', 'Anbulla Rajinikanth'];
for (var i = 0; i < movies.length; ++i) {
  document.writeln(movies[i] + "<br/>");
}
于 2012-12-11T13:02:42.273 に答える
3

JavaScript にはありません。これはfor each非標準の拡張機能でした。

新しいES5 forEachfunctionがあります。これは最新のブラウザーで十分にサポートされていますが、もちろん古いブラウザーではサポートされていません。

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

ここスタックオーバーフローのこの他の回答にある他のいくつかのオプション。(質問は jQuery に言及していますが、答えはプレーンな JavaScript と jQuery の両方のオプションをカバーしています。)

于 2012-12-11T13:05:24.480 に答える