原理:通过深度优先遍历来遍历多维数组中的所有元素,并将数值进行累加。
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 变量中存储的即为多维数组中所有数值的总和。