浅谈Array上的遍历方法

博客列举了涉及循环遍历的数组方法及内置for,如for、while、for of等,并给出了它们的执行时间。还说明了各方法的特点,如forEach只能return但仍会循环等。同时指出不同场景的适用方法,如返回新数组可用map等,查询可用集成API,不过目前数组优化点不强。

免责声明 => 本博客不涉及业界轰轰烈烈的技术提升分享,只在点点滴滴的个人分享


首先我们来列举涉及到循环遍历的数组方法及内置for

  1. for (17ms)(我可以break)
  2. while(16.8ms)
  3. for of(16.8ms)
  4. for in(12ms)(索引不一定按顺序返回,但或许可以适用于遍历查询的场景下)
  5. forEach (17ms)(我只能return,但还是会循环)
  6. map(18.7ms)(Polyfill也是ES规范内部实现代码多了一步 => 创建新数组的操作)
  7. filter(同上)
  8. reduce(同上)
  9. some(16.8ms)
  10. every(同上)
  11. includes (1.7ms仅限于查询某条数据的情况下)

测试工具
console.time(‘cool’)

适用场景
从5开始的方法都可以在MDN查看其内部实现;

  1. 如果你需要返回一个全新的数组(请使用map,filter,reduce)
  2. 如果你想要查询请用集成API(some,every,includes)(在表达式的情况下也可以使用)

性能优化引用一篇blog的话 => 额外因素很多
These result does not consider the JIT, inline caching, hidden classes, deoptimizations, garbage collection, pretenuring etc.

本来想看看数组这边的优化点,结果发现暂无比较强劲的优化点。
下一篇hook的学习分享

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值