浅谈Array上的遍历方法

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


首先我们来列举涉及到循环遍历的数组方法及内置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的学习分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值