计算列表的总和

calculate the sum of a list of lists

本文关键字:列表 计算      更新时间:2024-05-02

我在http://games.usvsth3m.com/javascript-under-pressure/我到达了第五个问题,它需要估计列表中所有整数的和。该列表可能包含嵌套列表。因此,对于列表[1,2,3,5]或[[1,2,3],4,5],下面的代码有效,但对于列表[[[[1]]],2,3,4]则无效。我试了很多小时,但我不知道该怎么解决。我需要一个命中率。

function arraySum(i) {
var sum =0;    
for (var id =0; id<i.length;id++){
    if(typeof i[id]==='object'){
        var ar = i[id];
        for (var dd =0; dd<ar.length;dd++ ){
            if(typeof ar[dd]==='number'){
                sum+=parseInt(ar[dd]);
            }        
        }
    }
    else
        if(typeof i[id]==='number'){
            sum+=parseInt(i[id]);
        }
    }
return sum;
}

使用递归。

var arr = [1, 2, [3, 4, [[[5]]]]];
num = 0;
function loop (arr) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] instanceof Array) {
            loop(arr[i]);
        } else {
            num += parseInt(arr[i]);
        }
    }
}
loop(arr);
console.log(num);

小提琴http://jsfiddle.net/9j1hcx4x/