Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 2x 2x 2x 9x 9x 13x 13x 81x 50x 81x 13x 81x 4x 9x 9x | import Big from 'big.js';
import { getClass } from '../_internal/getClass';
export const sum = (params: unknown[], api?: string): number => {
let resultSum = new Big(0);
// 内部递归函数
const _sum = (params: unknown[], api?: string) => {
Eif (getClass(params) === 'array' && Array.isArray(params)) {
params.forEach((item) => {
if (!isNaN(item)) {
resultSum = resultSum.plus(Number(item));
}
if (getClass(item) === 'object' && typeof api !== 'undefined' && item[api] !== null) {
resultSum = resultSum.plus(Number(item[api]));
}
if (getClass(item) === 'array' && Array.isArray(item)) {
_sum(item, api);
}
})
}
}
_sum(params, api);
return Number(resultSum);
} |