我的代码:
<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
但在IE9
和Chrome Version 23.0.1271.95 m
中,for each
无效,文档上没有任何内容
答案 0 :(得分: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/>");
}
答案 1 :(得分:3)
JavaScript中没有for each
,这是非标准扩展。
有新的ES5 forEach
function,在现代浏览器中得到了很好的支持,但当然不是旧的浏览器:
['Endhiran The Robot','Shivaji The Boss','Anbulla Rajinikanth'].forEach(function(movie) {
document.writeln(movie + "<br/>");
});
Stack Overflow上this other answer的其他几个选项。 (问题提到了jQuery,但答案涵盖了普通的JavaScript和jQuery选项。)