我正在尝试和解决 8m 7s 中提到的问题的朋友一起玩,对我来说它已经走了 20m。我不知道如何在 javascript 中处理无限的嵌套数组。
问题是这样的:
// i will be an array, containing integers, strings and/or arrays like itself.
// Sum all the integers you find, anywhere in the nest of arrays.
所以
arraySum([[1,2,false],'4','5']) will return 3 (passed)
arraySum([[1,2,3],4,5]) will return 15 (passed)
arraySum([[[[[[[[[1]]]]]]]], 1]) will return 2 (failed)
我写的代码是:
function arraySum(i) {
sum = 0;
tmp =0;
for (var a=0; a<i.length; a++){
if (i[a] instanceof Array) {
ar = i[a];
for (var j=0; j<ar.length; j++){
tmp +=ar[j];
}
}
if (typeof i[a] == "number")
sum += i[a];
console.log(sum);
}
return sum + tmp;
}
如您所见,它无法处理我失败的最后一种情况,因为我无法弄清楚如何在 JS 中处理无限嵌套。
任何想法将不胜感激。也尽量在 8m 7s 之前完成它,我的伙伴完成了。