【问题标题】:Optimizing a while loop in Javascript在 Javascript 中优化 while 循环
【发布时间】:2020-06-24 08:37:08
【问题描述】:

我有一个 while 循环,我在其中执行此操作

let count = 0,
  amount = 1000,
  arrayOfAmounts = [0];

while (count < amount) {
  count += 1000;
  if (count <= amount) {
    arrayOfAmounts.push(count);
    console.log(count);
  }
}

当数量变量中的值变大时,它会减慢进程,例如,假设我有 50000000,它有时会导致我的浏览器崩溃或变得非常慢。我知道为什么会发生这种情况,但我真的很想知道如何优化这段代码,让它比现在快一点。

我要解决的问题: 所以我试图根据可变数量中的值生成数千个数字数组。比如,变量数量是5000,我想生成一个值为0、1000、2000、3000、4000、5000的数组

【问题讨论】:

  • 你想要完成什么?
  • 记住 console.log 会大大降低执行速度
  • 所以我试图根据变量amount 中的值生成一个以千为单位的数字数组。例如,变量数量为 5000,我想生成一个值为 0、1000、2000、3000、4000、5000 的数组
  • 我真的没有理由将这些值添加到数组中。您可以使用index * 1000 简单地计算它,而不是通过arrayOfAmounts[index] 获取值。
  • 是的,你是对的@HarisBouchlis 我只是添加它来看看情况如何,没有日志它仍然很慢

标签: javascript loops while-loop


【解决方案1】:

要获得这样的数组,只需使用 Array.from

const additionPerLoop = 1000;
const amount = 10000;
const res = Array.from({length: Math.floor(amount / additionPerLoop) + 1}, (_, i) => i * additionPerLoop);

console.log(res);

【讨论】:

    猜你喜欢
    • 2018-03-01
    • 1970-01-01
    • 2016-03-18
    • 2023-03-18
    • 2011-05-14
    • 1970-01-01
    • 2018-11-24
    • 2016-06-29
    • 2019-02-19
    相关资源
    最近更新 更多