blob: a9e84c13c9098c5859db227889b62e96f53eb2ee [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001/**
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;