JavaScript 函数求和错误分析及解决方案

问题描述:

假设我们有一个名为 getSum() 的 JavaScript 函数,用于计算多个数字之和,代码如下:

function getSum(a, b, ...arr) {
  let sum = 0
  for(let i = 0; i<arr.length; i++){
    sum += a+b+arr[i]
  }
  return sum
}
console.log(getSum(1, 2, 3, 4, 5)); // 输出 18

预期结果应该是 15,但实际输出结果为 18。

错误分析:

问题出在 for 循环中,每次循环都将 a 和 b 的值加上 arr[i]。然而,第一次循环时已经将 a 和 b 的值加起来了,因此第一次循环应该将 sum 的初始值设为 a + b。

解决方案:

修改后的代码如下:

function getSum(a, b, ...arr) {
  let sum = a + b;
  for(let i = 0; i < arr.length; i++) {
    sum += arr[i];
  }
  return sum;
}

console.log(getSum(1, 2, 3, 4, 5)); // 输出 15

通过将 sum 的初始值设为 a + b,确保在第一次循环时只对 arr 中的元素进行累加,从而得到正确的总和结果。

JavaScript 函数求和错误分析及解决方案

原文地址: https://www.cveoy.top/t/topic/l4UL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录