【js】for、forEach、map数组遍历性能比较
结果:遍历时间上for循环遍历<for...of遍历<forEach遍历<for...in遍历<map遍历
背景
常用数组遍历方式有很多,最经典的for循环: for(var i=0;i<arr.length;i++){}
再者有了for...in for(var i in arr){}
forEach arr.forEach(function(i){})
map arr.map(function(i){})
然后ES6有了更为方便的for...of for(let i of arr){}
*为何for… in会慢?
因为for...in语法是第一个能够迭代对象键的javaScript语句,循环对象键盘({})与在数组(【】)上循环不一样,引擎会执行一些额外的工作来跟踪已经迭代的属性。
因此可以大致得出以下几点:
1.数据量大时,遍历性能的差距尤为明显;
2.for系遍历总体性能好于forEach、map等数组方法
3.你大爷毕竟还是你大爷,性能最佳的还是经典的for循环遍历
4.forEach性能优于map
5.for...of要兼容低于版本设备的话还是算了
网友评论