计算列表列表的总和

时间:2015-02-23 22:31:15

标签: javascript list nested-lists

我在http://games.usvsth3m.com/javascript-under-pressure/找到了这个代码,我找到了第5个问题,需要估算列表中所有整数的总和。该列表可能包含嵌套列表。因此,对于列表[1,2,3,4,5]或[[1,2,3],4,5],下面的代码可用,但列表[[[[[1]]]],2, 3,4]没有。我尝试了很多时间,但我不知道要解决它。我需要一个打击PLZ。

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;
}

1 个答案:

答案 0 :(得分:1)

使用递归。

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/