我的基础数据
[{
month: 'Jan',
cat: 'A',
val: 20
},{
month: 'Jan',
cat: 'B','
val: 5
},{
month: 'Jan',
cat: 'C',
val: 10
},{
month: 'Feb',
cat: 'A',
val: 30
},{
month: 'Feb',
cat: 'B',
val: 10
},{
month: 'Feb',
cat: 'C',
val: 20
}];
我想添加另一个名为'%'对于上述对象,其价值将是财产的百分比'
真心感谢任何帮助。
答案 0 :(得分:3)
使用 Array#reduce
方法计算总数,然后使用 Array#forEach
方法添加百分比字段。
var data = [{
month: 'Jan',
cat: 'A',
val: 20
}, {
month: 'Jan',
cat: 'B',
val: 5
}, {
month: 'Jan',
cat: 'C',
val: 10
}, {
month: 'Feb',
cat: 'A',
val: 30
}, {
month: 'Feb',
cat: 'B',
val: 10
}, {
month: 'Feb',
cat: 'C',
val: 20
}];
var total = data.reduce(function(a, b) {
return a + b.val
}, 0);
data.forEach(function(v) {
v.percentage = (v.val * 100 / total).toFixed(2)
});
console.log(data);