我有一个函数需要对数组中的所有数字求和,如果这些数字是字符串 '1'、'2',该函数也需要对它们求和。
我编写了一个函数并尝试解析数字,但它不起作用。
基本上,它需要总结所有数字。不使用 reduce
可以吗?我需要一个简单的解决方案或带有 .map 的解决方案我的错误在哪里?
function sumArrNums(arr) {
let count = 0;
arr.forEach(el => typeof el == 'number' ? count+= el : '');
return count;
}
console.log(sumArrNums(['1', '2', 5,5,5, '3']))
最佳答案
当元素是字符串时,您的三元运算符什么也不做,您可以使用 Number(el)
(或一元 +
)将元素转换为数字(字符串将被转换,并且数字将保持数字,因此不需要类型检查):
function sumArrNums(arr) {
let count = 0;
arr.forEach(el => count += Number(el));
return count;
}
console.log(sumArrNums(['1', '2', 5, 5, 5, '3']))
关于javascript - 对数组数字求和的函数(包括作为字符串的数字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57893236/