面试题答案
一键面试使用for循环逐个累加
function sumWithForLoop(arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
使用数组的reduce方法
function sumWithReduce(arr) {
return arr.reduce((acc, num) => acc + num, 0);
}
性能分析
在处理大数据量数组时,使用for
循环可能性能更优。原因如下:
for
循环:for
循环是JavaScript中最基础的循环结构,它直接通过索引来访问数组元素,没有额外的函数调用开销。它的执行过程简单直接,在循环体中直接进行累加操作,效率较高。reduce
方法:reduce
方法本质上是对数组的迭代操作,在每次迭代时都会调用传入的回调函数。虽然这种方式代码简洁,但函数调用本身会带来额外的开销,包括创建函数作用域、传递参数等操作。当处理大数据量数组时,这种额外的开销会逐渐累积,导致性能下降。