javascript – for for var index in vs. forEach [closed]
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – for for var index in vs. forEach [closed],小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2060字,纯文字阅读大概需要3分钟。
内容图文
![javascript – for for var index in vs. forEach [closed]](/upload/InfoBanner/zyjiaocheng/733/460f49f4b006418ba9b1a6cfb44e6d0f.jpg)
在javascript中,如果我想循环遍历数组中的每个元素,我有几种方法可以做到这一点:
1.
for(var i =0; i<array.length; i++){}
2.
array.forEach(function(item, index){});
3.
for (var index in array){}
第一个是常见的,但如果我感到懒惰,我想使用第二个或第三个.
但我想知道它们之间是否有任何区别,我应该选择哪种情况?
解决方法:
它们都是微妙的不同方法.
for(var i = 0; i< array.length; i){}是经过验证的方法;感觉像C,像C一样工作
>迭代每个数组索引,即使没有相应属性/项的索引也是如此.
>适用于任何支持.length和属性的对象,名称为[0..length];虽然它也适用于稀疏填充的阵列,但可能需要额外的防护.
>与forEach不同,这允许在循环体内使用continue / break / return以及手动调整索引,如果需要的话.
array.forEach(function(item,index){})是我喜欢的方法,因为它通常足够,感觉更干净,并且是“lazy”.
>迭代具有属性的每个数组值/索引.
>隐含地暗示每个循环的新功能范围.
>虽然在Array.prototype上定义,但它通常可以通过call / apply在类似数组的对象上使用.
>它有more overhead than for..i++(链接从James G.的评论中被盗).然而,这通常无关紧要,相对性能差异将随着身体工作的增加而减少.
处理数组/序列迭代时,不应使用for(数组中的var index){}.
>迭代所有未排除的枚举属性,遍历[prototype]
>属性名称在implementation-defined order2中迭代
这是demonstration of some differences:
var array = [];
array[0] = 1;
array[2] = 2; // Note that `1 in array` is false as it was never set
array.hello_world = 3;
var a = 0;
for(var i = 0; i<array.length; i++){
a += array[i]
}
// -> NaN; because array[1] was undefined
console.log("index: " + a);
var b = 0;
array.forEach(function (v, i) {
b += v;
});
// -> 3; because v was never undefined (as array[1] was skipped)
console.log("forEach: " + b);
var c = 0;
for (var p in array) {
c += array[p];
}
// -> 6; picked up "hello_world" but didn't pick up missing "1" property
console.log("for..in: " + c);
2生成different iteration order between browsers的示例:
var a = [];
for (var i = 100000; i > 0; i -= 1000) { a[i] = i; }
var s = "";
for (var p in a) { s += p + ","; }
console.log(s);
Chrome和IE 10以数字递增的方式迭代; FF按插入顺序迭代(对于较小范围的值,FireFox也按数字递增排序).只是不要使用这种方法迭代序列,不会有这样的问题.
内容总结
以上是互联网集市为您收集整理的javascript – for for var index in vs. forEach [closed]全部内容,希望文章能够帮你解决javascript – for for var index in vs. forEach [closed]所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。