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

Adding an property with percent value of another property in json object javascript underscore

我的基础数据

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

我想在上面的对象中添加另一个名为 'percent' 的 属性,它的值是 属性 'val'

的百分比

真诚感谢任何帮助..

使用Array#reduce method and then add percentage field using 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);