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) => { if (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); }