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

但是在IE9andChrome Version 23.0.1271.95 mfor 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,那是一个非标准的扩展。

有一个新的ES5forEach函数,它在现代浏览器中得到很好的支持,当然在旧的浏览器中不支持:

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

Stack Overflow 上的其他答案中还有其他几个选项。(问题提到了 jQuery,但答案涵盖了纯 JavaScript 和 jQuery 选项。)

于 2012-12-11T13:05:24.480 回答