JavaScript数组求和

如题,今天遇到一组存放于数组中的字符串形式的“数字”,并且要将数组里面所有的数字进行求和。当时第一反应就是通过for()循环对每个元素进行累加,但是最后得到的结果却是NaN。

为什么会是NaN呢?

可能是忘记转换格式了,好,我们parseInt()一下。

还是不行。。。。。

看来需要找找大神们是怎么做的了。

在经过一番搜索之后找到了原因所在,原来还是漏掉了一些情况。

说白了就是,看到了和大神之间巨大的差距。

废话少说,上代码。

<script type="text/javascript">
    function arraySum(arr) {
        var sum = 0;
        if (Object.prototype.toString.call(arr) === '[object Array]') {
            for (var i = 0; i < arr.length; i++) {
                if (typeof arr[i] === "number" && !isNaN(arr[i])) {
                    sum += arr[i];
                } else {
                    var tmp = parseInt(arr[i]);
                    if ((typeof tmp === "number") && !isNaN(tmp)) {
                        sum += tmp;
                    } else {
                        throw new Error("存在不能转换成Number的数据");
                    }
                }
            }
        }
        return sum;
    }

    var arr = "1,2,3,4,8,6,7,8,9,10".split(",");
    //arr =[1,2,3,4,5,6,7,8,9,10];
    var sum = arraySum(arr);
    console.log(sum);
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值