UNPKG

fenzhi-utils

Version:

分值前端项目的js函数库

37 lines (34 loc) 979 B
/** * 数组求和(根据某个字段求和) * @param {array} arr 求和的数组 * @returns {number} */ /** let arr_1 = [{ a: 1 }, { a: 2 }, { a: 3 }, { a: 4 }, { a: 5 }]; CustomArraySumField(arr_1, 'a'); // 15 let arr_2 = [ { a: 1 }, { a: null }, { a: '' }, { a: '1' }, { a: undefined }, { a: Infinity }, ]; CustomArraySumField(arr_2,'a');// 2 */ export function CustomArraySumField(arr = [], field) { if (!arr.length) return 0; if ([0, 1].includes(arguments.length)) return 0; return arr.reduce((pre, item) => { let curNum = 0; if ( [null, 'null', '', 'undefined', undefined, Infinity].includes(item[field]) ) curNum = 0; else if (typeof item[field] === 'number') curNum = item[field]; else if (typeof item[field] === 'string') curNum = parseInt(item[field], 10); else if (typeof item[field] === 'boolean') curNum = item[field] ? 1 : 0; return pre + curNum; }, 0); }