我在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;
}
答案 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);