繁体   English   中英

我不断收到“未定义总和”错误

[英]i keep getting a “sum is not defined” error

我正在尝试编写此函数以返回给定Number的所有数字的总和

我不断收到“未定义总和”错误,并怀疑范围是问题所在...

function sumOfDigits(num) {
  // Write your code here!
  let numArr = num,
    output = [],
    sNumber = num.toString();

  for (let i = 0, len = sNumber.length; i < len; i++) {
    output.push(+sNumber.charAt(i));
  }

  for (let x = 0, sum = 0; x < output.length; sum += output[x++]);
  return sum;

}

我猜这是一个范围问题,因为我认为我已经定义了“和”

当使用let (或const )时,变量的作用域为包含它的块。因此对于此代码:

for (let x = 0, sum = 0; x < output.length; sum += output[x++]);

...该块只是for循环。 for循环完成后, xsum都超出范围,无法访问。 如果希望sum可以在更大范围内使用,请将其声明移到for循环之外,如下所示:

let sum = 0;
for (let x = 0; x < output.length; sum += output[x++]);
return sum;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM