改变原数组+结束循环+性能排序

Posted by CodingWithAlice on March 20, 2020

改变原数组+结束循环+性能排序

场景:遍历一个数组,找到满足条件的第一项后停止遍历。

参考:完全来自于MDN,只是简化成描述+语法,方便自己复习

总结:

  • 会改变原数组的方法(8种):push,pop,shift,unshift,reverse,sort,splice,fill

  • 除了抛出异常外,不能通过 break 和 『return』 结束循环forEachmapfilterreduce【for…of和for循环可以】

  • 满足场景的方法:somefindfor…offor循环可以找到第一个返回true/值/使用return之后停止

性能大致比较如下:for循环 > for…of > forEach > 『map』 > for…in

1. 优化版for循环[性能最高]
  • 性能:使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。
for(j = 0, len = arr.length; j < len; j++) {}
. 普通for循环
  • 性能:使用频率最高,性能不弱,数组较大时性能降低
for(j = 0; j < arr.length; j++) {}
3.for…of循环
  • 性能:性能好于for…in、forEach、map,但仍 低于普通for循环
4. foreach循环
  • 性能:数组自带的foreach循环,性能比普通for循环弱(没有返回值,纯粹用来遍历数组)
5. map
  • 性能:比较优雅,低于普通for循环,还比不上foreach
6. for…in循环
  • 性能:效率最低,不推荐用于数组遍历,一般用于对象循环