基础数组求和

100 阅读1分钟

数组求和

常见方式

  • 递归
  • 循环
  • 函数式编程
  • eval

Show Code

递归

const _sum = (arr) => {
  let _sumData = 0;
  arr.forEach(i => {
    _sumData += i;
  });
  return _sumData;
}
// test
console.log(_sum([1, 2, 3, 4])) // 10

循环

const _sum = (arr) => {
  if(arr.length < 1) {
    return arr[0] || 0
  }else {
    return arr[0] + _sum(arr.slice(1))
  }
}
// test
console.log(_sum([1, 2, 3, 4])) // 10

函数式编程

const _sum = (arr) => {
  return arr.reduce((pre, cur) => {
    return pre + cur
  }, 0)
}
// test
console.log(_sum([1, 2, 3, 4])) // 10

eval

const _sum = (arr) => {
  return eval(arr.join('+'))
}
// test
console.log(_sum([1, 2, 3, 4])) // 10