JavaScript数组求和

来源:互联网 发布:网上淘宝网 编辑:程序博客网 时间:2024/06/01 07:26

如题,今天遇到一组存放于数组中的字符串形式的“数字”,并且要将数组里面所有的数字进行求和。当时第一反应就是通过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>
原创粉丝点击