我们可以使用递归来解决这个问题,即遍历数组中的每一个元素,如果它是一个数组,则对该数组进行递归调用,否则如果它是一个整数,则将它加入到总和中。以下是其中一种实现方式的示例代码:
function sumDeep(arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
sum += sumDeep(arr[i]);
} else if (typeof arr[i] === "number") {
sum += arr[i];
}
}
return sum;
}
// 测试
const arr = [1, [2, [3, 4], 5], 6];
console.log(sumDeep(arr)); // 21
在上述代码中,我们定义了一个sumDeep()函数来进行递归调用,并将数组元素依次传递给它。如果元素是一个数组,则递归调用sumDeep()函数以继续遍历;否则,如果元素是一个整数,则将它累加到总和中。最后,将总和作为结果返回。