塑造json对象

时间:2015-03-20 15:36:25

标签: javascript json highcharts

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'}]

OR

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

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

我尝试过使用lodash的 .map, .uniq, .reduce, .zipObject,但我仍然无法弄明白。

1 个答案:

答案 0 :(得分:0)

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

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