实现数组求和的6种方法

122 阅读1分钟
let arr = [1,3,5,7,9]
let result = sum(arr)
  1. 递归
        function sum(arr) {
            let len = arr.length
            if (!len) {
                return 0
            }
            else if (len === 1) {
                return arr[0]
            }
            else {
                return arr[0] + sum(arr.slice(1))
            }
        }
  1. 常规for循环
        function sum(arr) {
            let result = 0
            for (let i = 0; i < arr.length; i++) {
                result += arr[i]
            }
            return result
        }
  1. reduce() 方法
        function sum(arr) {
            return arr.reduce((pre, curr) => {
                return pre + curr
            })
        }
  1. map()方法
        function sum(arr) {
            let result = 0
            arr.map(item => result += item)
            return result
        }
  1. forEach()方法
        function sum(arr) {
            let result = 0
            arr.forEach(item => {
                result += item
            })
            return result
        }
  1. eval() 函数

join() 方法用于把数组中的所有元素转换一个字符串,元素是通过指定的分隔符进行分隔的。
eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。

        function sum(arr) {
            return eval(arr.join('+'))
        }