【问题标题】:Why Javascript's every method is overpowered?为什么 Javascript 的每个方法都被压倒了?
【发布时间】:2018-04-12 18:22:28
【问题描述】:

我已经做了基准测试来检查几种遍历数组的方法的性能。

https://jsperf.com/extended-array-loops-performance

有人可以解释为什么every 方法如此强大吗?它比任何其他方法都快 90% 以上,甚至比类似的方法都快,这真是太奇怪了

【问题讨论】:

  • 因为它一旦遇到与some相反的错误就会退出,这真的很慢。
  • reduce!?最被低估的数组方法

标签: javascript arrays performance loops benchmarking


【解决方案1】:

因为你只运行一次。

every() 将遍历元素,直到找到错误值,然后返回。

由于您的基准测试没有返回任何内容,即undefined,即falsey,因此它只运行一次。您的所有其他循环都贯穿所有元素。

将您的测试更改为:

arr.every(val => {
  sth = val;
  return true;
});

它应该与其余部分保持一致。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 2019-01-05
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    相关资源
    最近更新 更多