_baseSum.js 600 B

12345678910111213141516171819202122232425
  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. */
  10. function baseSum(array, iteratee) {
  11. var result,
  12. index = -1,
  13. length = array.length;
  14. while (++index < length) {
  15. var current = iteratee(array[index]);
  16. if (current !== undefined) {
  17. result = result === undefined ? current : (result + current);
  18. }
  19. }
  20. return result;
  21. }
  22. module.exports = baseSum;