在json对象javascript下划线中添加具有另一个属性的百分比值的属性

时间:2016-06-16 06:41:31

标签: javascript underscore.js

我的基础数据

[{
        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
    }];

我想添加另一个名为'%'对于上述对象,其价值将是财产的百分比'

真心感谢任何帮助。

1 个答案:

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