面试题答案
一键面试const numbers = [1, 2, 3, 4, 5];
const sum = numbers.filter(num => num % 2 === 0).reduce((acc, num) => acc + num * num, 0);
console.log(sum);
优化解释
filter
方法:它用于创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。这里num % 2 === 0
筛选出所有偶数,只对偶数进行后续操作,减少了后续计算量。reduce
方法:它对数组中的每个元素执行一个由您提供的reducer
函数(升序执行),将其结果汇总为单个返回值。这里通过acc + num * num
计算偶数的平方和,0
为初始值。通过这两个方法链式调用,逻辑清晰,并且避免了使用传统for
循环可能产生的冗余代码和潜在错误,提高了代码的可读性和执行效率。