UNPKG

600 BJavaScriptView Raw
1/**
2 * The base implementation of `_.sum` and `_.sumBy` without support for
3 * iteratee shorthands.
4 *
5 * @private
6 * @param {Array} array The array to iterate over.
7 * @param {Function} iteratee The function invoked per iteration.
8 * @returns {number} Returns the sum.
9 */
10function baseSum(array, iteratee) {
11 var result,
12 index = -1,
13 length = array.length;
14
15 while (++index < length) {
16 var current = iteratee(array[index]);
17 if (current !== undefined) {
18 result = result === undefined ? current : (result + current);
19 }
20 }
21 return result;
22}
23
24module.exports = baseSum;