我正在尝试和我的朋友一起玩,他解决了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.
So
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 中的无限嵌套。
任何想法将不胜感激。
也尽量在 8 米 7 秒之前完成,我的朋友也完成了。