var nameArray = [
{ name: 'john', surname: 'smith' },
{ name: 'paul', surname: 'jones' },
{ name: 'timi', surname: 'abel' },
];
for (str of nameArray) {
console.log( str.name );
}
我想知道,在浏览器支持,移动JavaScript支持方面for( item of array )
的支持程度如何 - 我发现你不能做greater than >
而这是纯粹的迭代?
我刚刚发现了这个,这是我希望的那么好吗?
答案 0 :(得分:11)
这样做的经典方法如下:
for(var i = 0; i < nameArray.length; i++){
var str = nameArray[i];
}
这将为您提供“foreach”循环的确切功能,我怀疑这是您在此之后的真实情况。 这也为您提供了在Internet Explorer中工作的额外好处。
对MDN中描述的确切循环也有广泛的了解。此时Android网站似乎并非所有内容都支持您的方法,因此请检查该页面上的兼容性列表;似乎是新JavaScript的未来版本,可能会在其中包含OOP。
答案 1 :(得分:8)
而for ...迭代属性名称,for ... of iterate over property values。
以上是for...of
循环的作用。以下是其现状。
这是一项实验技术,是和谐的一部分(ECMAScript 6) 提案。因为这项技术的规格还没有稳定, 检查compatibility表以了解各种浏览器的用法。另请注意 实验技术的语法和行为是主题 随着规范的变化,在未来版本的浏览器中进行更改。
答案 2 :(得分:3)
这是ES6 for..of
循环。根据我刚刚链接的MDN文章,它得到了几个浏览器的支持(请参阅那里的确切版本),但不是IE。目前,一些移动浏览器也支持它。
答案 3 :(得分:3)
与此同时,您可以使用以下内容:
for(element_idx in elements) {
element = elements[element_idx];
...
}
答案 4 :(得分:-6)
不是。
即使它是,在阵列上使用它也是不合适的。
对于数组,您应该始终使用传统的for
循环。
但是,你可以稍微调整一下:
for( var i=0, l=nameArray.length, str=nameArray[0];
i<l;
i++,str=nameArray[i]) {
console.log(str.name);
}