/**

* The base implementation of `_.sum` and `_.sumBy` without support for
* iteratee shorthands.
*
* @private
* @param {Array} array The array to iterate over.
* @param {Function} iteratee The function invoked per iteration.
* @returns {number} Returns the sum.
*/

function baseSum(array, iteratee) {

var result,
    index = -1,
    length = array.length;

while (++index < length) {
  var current = iteratee(array[index]);
  if (current !== undefined) {
    result = result === undefined ? current : (result + current);
  }
}
return result;

}

module.exports = baseSum;