1. 使用reduce高阶函数
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
function sumArr(arr) {
return arr.reduce((a, b) => a + b)
}
console.log(sumArr(arr)); //55
2. 如果数组是多维数组(flag/toString)
// 多维数组
let arr = [1, 2, 3, [[4, 5], 6], 7, 8, 9, 10]
// 使用flat函数 将多维数组转化成一维数组 其中flat方法参数 如果为Infinity时 将所有的多维数组都拆分成一维数组
function sumArr(arr) {
// return arr.flat(Infinity).reduce((a, b) => a + b)
return arr.toString().split(',').reduce((a, b) => (a - 0) + (b - 0))
}
console.log(sumArr(arr)); // 55
3. 使用递归实现
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
function recursion(arr) {
if (arr.length <= 0) return 0;
let i = arr.shift()
return i + recursion(arr)
}
console.log(recursion(arr)); // 55