首页 > 解决方案 > 对数组数字求和的函数(包括作为字符串的数字)

问题描述

我有一个函数需要对数组中的所有数字求和,如果这些数字是字符串“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']))

标签: javascript

解决方案


当元素是字符串时,您的三元运算符什么也不做,您可以使用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']))


推荐阅读