【发布时间】:2020-01-05 16:30:46
【问题描述】:
所以我只是想知道在下面这个简单的函数中为变量赋值是否会降低运行时效率:
const biggestNumberInArray = (arr) => {
let biggest = 0;
for (item of arr) {
biggest = (item > biggest) ? item : biggest;
}
return biggest;
}
在 for 循环中,每次迭代都会为变量 biggest 赋值。所以如果我改写:
if (biggest < item) { biggest=item;};
这个功能会变得更有效率吗?我真的没有什么大数组,这个问题主要是理论上的,我想了解力学是如何工作的。
谢谢!
【问题讨论】:
-
Math.max 会更高效
-
这项作业只需要很短的时间。除非您实际上已经对其进行了基准测试并且有理由怀疑它可能会更快,否则请选择更好的选择。
-
运行一次数组是 N。比较每个是 N。在每次迭代中分配是 N。所以你有最多 3N 次操作和最少 2N+1...这是一个很好的折衷方案,我看不出你的代码有什么问题。
标签: javascript arrays performance memory-efficient