20
var nameArray = [

{ name: 'john', surname: 'smith'  },
{ name: 'paul', surname: 'jones' },
{ name: 'timi', surname: 'abel' },

];  

for (str of nameArray) {    
   console.log( str.name );

}

我想知道,for( item of array )在浏览器支持、移动 JavaScript 支持方面的支持程度如何——我知道你做不到greater than >,这是纯粹的迭代?

我刚刚发现了这一点,这和我希望的一样好吗?

4

4 回答 4

18

执行此操作的经典方法如下:

  for(var i = 0; i < nameArray.length; i++){
    var str = nameArray[i];
  }

这将为您提供“foreach”循环的确切功能,我怀疑这是您真正想要的。这还为您提供了在 Internet Explorer 中工作的额外好处。

对MDN中描述的确切循环也有广泛的了解。目前 Android web 似乎并非所有内容都支持您的方法,因此请检查该页面上的兼容性列表;似乎是新 JavaScript 的未来版本,其中可能包含 OOP。

于 2014-12-09T17:10:12.750 回答
9

医疗器械网络:

for...in 迭代属性名称,for...of 迭代属性值。

以上是for...of循环的作用。下面是它的当前状态。

这是一项实验性技术,是 Harmony (ECMAScript 6) 提案的一部分。由于该技术的规格尚未稳定,请查看兼容性表以了解在各种浏览器中的使用情况。另请注意,实验技术的语法和行为可能会随着规范的变化而在未来版本的浏览器中发生变化。

于 2014-12-09T17:01:51.227 回答
4

这是 ES6for..of循环。根据我刚刚链接的 MDN 文章,它受到多个浏览器的支持(请参阅那里的确切版本),但不支持 IE。目前,一些移动浏览器也支持它。

于 2014-12-09T17:01:45.913 回答
3

与此同时,你可以使用这样的东西:

for(element_idx in elements) {
    element = elements[element_idx];
    ...
}

for...in自 ECMAScript 第 1 版以来一直是标准的。

于 2015-01-08T02:30:01.343 回答