我是JavaScript的新手,所以如果这个问题看起来有点平淡,请原谅我。
我想写一个函数,执行以下操作:
1。接受单个数字数组并返回数组中数字的总和。2. 如果为空,返回0。
let num3 = function sumNumbers([index]) {
if (index != "number") {
return 0;
}
else {
[index].reduce((a, b) => a + b, 0)
}
}
num3(1, 2, 3);
然而,我得到这个错误:
Uncaught TypeError: number 1 is not iterable (cannot read property Symbol(Symbol.iterator))
at sumNumbers (main.js:16:31)
at main.js:25:1
有人知道解决方法吗?非常感谢:)
您可以使用for
循环遍历数组,并在每次迭代中增加sum
,最后返回它。
如果数组中没有数字,则该函数将返回sum
的初始值,即0
。
function addNums(nums) {
let sum = 0;
for (let i = 0; i < nums.length; i++) {
sum += nums[i];
}
return sum;
}
console.log(addNums([1, 2, 3]));
console.log(addNums([]));
你也可以使用Array.prototype.reduce一步完成计算。
const addNums = (nums) => nums.reduce((s, n) => s + n, 0);
console.log(addNums([1, 2, 3]));
console.log(addNums([]));