time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

_baseSum.js (600B)


      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 
     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 
     24 module.exports = baseSum;