js-function-lib
Version:
JavaScript function library
37 lines (36 loc) • 1.08 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var isString_1 = __importDefault(require("./isString"));
var isFunction_1 = __importDefault(require("./isFunction"));
/**
* 计算 array 中值的总和
*
* @param {Array<any>} array 要迭代的数组
* @param {*} [iteratee] 调用每个元素的迭代函数
* @returns {number} 返回总和
* @version 1.1.9
*
* sum([1, 2, 3]);
* // => 6
*
* const array = [{id: 1}, {id: 2}, {id: 3}];
*
* sum(array, 'id');
* // => 6
*
* sum(array, (v) => v.id);
* // => 6
*/
function sum(array, iteratee) {
if (isString_1.default(iteratee)) {
array = array.map(function (v) { return v[String(iteratee)]; });
}
else if (isFunction_1.default(iteratee)) {
array = array.map(iteratee);
}
return array.reduce(function (total, value) { return total + value; }, 0);
}
exports.default = sum;