塑造 json 对象

Shaping json object

本文关键字:对象 json 塑造      更新时间:2023-09-26
rows[
  {0: c:[{0: {v:'2013'}, 1: {v: 'apple'},2: {v: '200'}}]},
  {1: c:[{0: {v:'2014'}, 1: {v: 'apple'},2: {v: '1000'}}]},
  {2: c:[{0: {v:'2013'}, 1: {v: 'orange'},2: {v: '200'}}]},
  {3: c:[{0: {v:'2014'}, 1: {v: 'orange'},2: {v: '1000'}}]}
]

我正在尝试将其重塑为这样的东西:

[apple: {2013: '200', 2014: '1000'}, orange: {2013: '200', 2014: '1000'}]

[
  apple: {
    2013: {year: '2013', amount: '200'},
    2014: {year: '2014', amount: '1000'}
  },
  orange: {
    2013: {year: '2013', amount: '200'},
    2014: {year: '2014', amount: '1000'}
}]

或苹果: [{年份:2013, 金额:200},{年份:2014,金额:1000}]

我试过玩lodash的.map,.uniq,.reduce,.zipObject,但我仍然无法弄清楚。

使用了以下 lodash 函数:使用 _.map 获取水果的名称。uniqueFruitNames = 通过 _.uniq 获取唯一名称,然后对它们进行排序。data2013 和 data2014 = 使用 _.remove 获取特定年份的水果并分别对其进行排序。使用 _.zipObject 压缩唯一水果名称和数据2013唯一水果名称和数据2014然后 _.merge 两个压缩的对象。

var dataSeries = _.map(mergedData, function(asset,key) { 
                return { 
                    name: key, 
                    data: [fruit[0].amount, fruit[1].amount]
                }
        });