转换js数组以便添加数值

Transforming js array such that a numeric value is added

我的基础数据..

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

我想把它转换成下面的格式..

[{
            dim:'val'
        x: 'Jan',
            nval: 20 //same as base object val
        },{
            dim:'val'
            x: 'Jan',
            nval: 25// 20+5 -> above nval value + base object val
        },{
            dim:'val'
            x: 'Jan',
            nval: 35//25+10
        },{
            dim:'val'
            x: 'Feb',
            val: 65//35+30
        },{
            dim:'val'
            x: 'Feb',
            nval: 75
        },{
            dim:'val'
            x: 'Feb',
            nval: 95
        }];

上面的js数组有一个属性 dim,它有一个固定值'val',属性 x 与基础对象的月份有相同的值。 属性 nval 使得数组第一个对象中的 属性 与基础对象的 val 具有相同的值。在该基础对象的 val get 添加到新数组中 prev 对象的 nval 之后。

我希望我已经能够解释我所需要的..如果您有任何疑问/问题请尽管问..

我应该可以使用 map 创建新的 javascript 数组,但是如何从 val 创建 nval..

真诚感谢任何帮助..

谢谢

希望对您有所帮助。

var newObject=[];
var tempDate=0;
var base =[{
        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
    }];

for(var prop in base)
{
  newObject.push({
    'dim':'val',
    'x':base[prop]['month'],
    'nval':tempDate + base[prop]['val']
  });
  tempDate=tempDate + base[prop]['val'];
}

console.log(newObject);