[英]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循环完成后, x
和sum
都超出范围,无法访问。 如果希望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.