数组对象中的某一项求和比例

109 阅读1分钟

数组对象中的某一项求和比例

export function ArrayCalculation(data, mark) {
    // 百分比数组集合 小数 
    let percentage = []
    let sum = data.reduce((pre, cur) => pre + Number(cur[`${mark}`] || 0), 0)
    if (sum) {
        data.forEach(item => {
            let peritem = parseFloat((item[`${mark}`] / sum).toFixed(2))
            percentage.push({ ...item, 'ratio': peritem })
        })
    } else {
        data.forEach(item => {
            percentage.push({ ...item, 'ratio': 0 })
        })
        // percentage = Array.from({ length: data.length }, () => ({ 'ratio': 0 }))     // [ {}, {}, {} ]
    }

    return { sum, percentage }
}