原理:通过深度优先遍历来遍历多维数组中的所有元素,并将数值进行累加。
javascript
function sumOfMultiDimensionalArray(arr) {
let sum = 0;
function recursiveSum(array) {
array.forEach((element) => {
if (Array.isArray(element)) {
recursiveSum(element);
} else {
sum += element;
}
});
}
recursiveSum(arr);
return sum;
}
const arr = [
[1, 2, 3],
[4, [5, 6]],
[
[7, 8],
[9, [10, 11]],
],
];
const result = sumOfMultiDimensionalArray(arr);
console.log(result); // 输出:66
这个函数接收一个多维数组作为参数,并声明了一个局部变量用于保存累加结果。然后,递归遍历数组的每个元素。
在这个函数中,使用 forEach 方法对数组进行遍历。对于每个遍历到的元素,首先检查它是否为数组。如果是数组,则递归调用函数,以处理嵌套的子数组;如果不是数组,即为数值,则将其累加到 sum 变量上。
通过递归地调用函数,可以实现对多维数组的深度优先遍历。当遍历完成后,sum 变量中存储的即为多维数组中所有数值的总和。