js 数组的几种求和方式

328 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

1、递归

    function sum(arr) {
      let add = function (index) {
        return arr.length <= index ? 0 : arr[index] + add(index + 1)
      }
      return add(0)
    }

2、使用数组的reduce方法

    function sum(arr) {
      return arr.reduce(function (pre, next) {
        return pre + next
      })
    }

3、循环遍历

    function forof(arr) {
      var sum = 0
      for (let val of arr) {
        sum += val
      }
      return sum
    }

    function forin(arr) {
      var sum = 0
      for (let key in arr) {
        sum += arr[key]
      }
      return sum
    }

    function each(arr) {
      let sum = 0
      arr.forEach((val) => {
        sum += val
      })
      return sum
    }

    function loop(arr) {
      let sum = 0
      for (let i = 0; i < arr.length; i++) {
        sum += arr[i]
      }
      return sum
    }

这里主要是第一种方式(递归),比较难想到一点