export function genPercentObject( data: Record[], key: string = 'key', value: string = 'value', decimals: number = 2, ) { const res = {} if (data && Array.isArray(data) && data.length) { const sum = data.reduce((p, n) => { return p + n[value] }, 0) data.forEach((item) => { if (item[key] && item[value]) { const crt = typeof sum === 'number' && sum !== 0 ? Number(item[value]) / sum : 0 const percent = crt === 0 ? 0 : +(crt * 100).toFixed(decimals) res[item[key]] = { ...item, percent, } } }) } return res }