我在javascript中有下面的对象数组。如果有任何新的self.updatedBeaconDetailsArray = []
self.updatedBeaconDetailsArray.removeAll()
密钥到达,则数组的大小可能会有所不同。
status
需要以以下格式获取输出。基本上,通过键在数组中所有对象之间的百分比。
[
{'status':'init','count':1000},
{'status':'start','count':2500},
{'status':'done','count':1500}
]
任何帮助将不胜感激。
答案 0 :(得分:1)
您可以获取所有计数的总和,并使用百分比值生成新对象。
var data = [{ status: 'init', count: 1000 }, { status: 'start', count: 2500 }, { status: 'done', count: 1500 }],
sum = data.reduce((s, { count }) => s + count, 0),
result = data.map(({ status, count }) => ({ status, percentage: count * 100 / sum }));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:1)
const myArr = [
{'status':'init','count':1000},
{'status':'start','count':2500},
{'status':'done','count':1500}
]
const total = myArr.reduce((a,i)=> a + i.count ,0)
const final = myArr.map(e=> ({...e, percentage: e.count * 100 / total})