You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
721 B
28 lines
721 B
5 months ago
|
var helperNumberAdd = require('./helperNumberAdd')
|
||
|
|
||
|
var isFunction = require('./isFunction')
|
||
|
var each = require('./each')
|
||
|
var get = require('./get')
|
||
|
|
||
|
/**
|
||
|
* 求和函数,将数值相加
|
||
|
*
|
||
|
* @param {Array} array 数组
|
||
|
* @param {Function/String} iterate 方法或属性
|
||
|
* @param {Object} context 上下文
|
||
|
* @return {Number}
|
||
|
*/
|
||
|
function sum (array, iterate, context) {
|
||
|
var result = 0
|
||
|
each(array, iterate ? isFunction(iterate) ? function () {
|
||
|
result = helperNumberAdd(result, iterate.apply(context, arguments))
|
||
|
} : function (val) {
|
||
|
result = helperNumberAdd(result, get(val, iterate))
|
||
|
} : function (val) {
|
||
|
result = helperNumberAdd(result, val)
|
||
|
})
|
||
|
return result
|
||
|
}
|
||
|
|
||
|
module.exports = sum
|