const calcPercentage = ((data) => {
let total = 0
let temp = []
let obj = {}
for (let key in data) {
let num = !!data[key] ? (data[key].toString().split('.')[1]).substring(0,2) : 0
total += parseInt(data[key])
temp.push({
name: key,
value: parseInt(data[key]),
dec: Number(num),
})
}
//计算差值
let dif = 100 - total;
//根据判断小数点排序
let newArr = temp.sort(function(a,b){
return b.dec - a.dec
})
//补齐总和100
for(let i = 0; i<newArr.length; i++){
if(i < dif){
newArr[i].value = newArr[i].value + 1
}
}
newArr.forEach(item => {
for(let key in data){
if(key == item.name){
obj[key] = item.value
}
}
})
return obj
})
计算占比总和为100整
最新推荐文章于 2025-05-06 23:46:02 发布