1. 使用reduce高阶函数

  1. let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  2. function sumArr(arr) {
  3. return arr.reduce((a, b) => a + b)
  4. }
  5. console.log(sumArr(arr)); //55

2. 如果数组是多维数组(flag/toString)

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

3. 使用递归实现

  1. let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  2. function recursion(arr) {
  3. if (arr.length <= 0) return 0;
  4. let i = arr.shift()
  5. return i + recursion(arr)
  6. }
  7. console.log(recursion(arr)); // 55