_.sum(array)

186

_.sum(array)

_.sum计算一个数组所有元素的和

参数

array (Array):要被遍历的数组

返回值

(number): 返回和

例子

_.sum([4, 2, 8, 6]);
// => 20

源代码

import baseSum from './.internal/baseSum.js'

/**
 * Computes the sum of the values in `array`.
 *
 * @since 3.4.0
 * @category Math
 * @param {Array} array The array to iterate over.
 * @returns {number} Returns the sum.
 * @example
 *
 * sum([4, 2, 8, 6])
 * // => 20
 */
//计算一个数组所有元素的和
function sum(array) {
  return (array != null && array.length)
    ? baseSum(array, (value) => value)
    : 0
    //如果array不为null且array拥有length属性,就调用baseSum计算数组元素的和,否则返回0
}

export default sum
baseSum
/**
 * The base implementation of `sum` and `sumBy`.
 *
 * @private
 * @param {Array} array The array to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {number} Returns the sum.
 */
//sum和sumBy方法的基础实现
function baseSum(array, iteratee) {
  let result

  for (const value of array) {//循环数组
    const current = iteratee(value)//用iteratee处理当前值
    if (current !== undefined) {//如果当前值不是undefined
      //将当前值加入result中
      result = result === undefined ? current : (result + current)
    }
  }
  return result
}

export default baseSum

 

posted @ 2019-08-27 22:51  hahazexia  阅读(545)  评论(0)    收藏  举报