通过键计算对象数组的百分比(动态)

时间:2019-10-02 21:05:39

标签: javascript

我在javascript中有下面的对象数组。如果有任何新的self.updatedBeaconDetailsArray = [] self.updatedBeaconDetailsArray.removeAll() 密钥到达,则数组的大小可能会有所不同。

status

需要以以下格式获取输出。基本上,通过键在数组中所有对象之间的百分比。

[
    {'status':'init','count':1000},
    {'status':'start','count':2500},
    {'status':'done','count':1500}
]

任何帮助将不胜感激。

2 个答案:

答案 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})