MST

星途 面试题库

面试题:JavaScript数组迭代优化之基础应用

假设有一个数组const numbers = [1, 2, 3, 4, 5]; 要求使用JavaScript数组迭代方法计算数组中所有偶数的平方和。请写出优化后的代码,并解释为什么这样写是优化的。
26.9万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
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);

优化解释

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