整形 json 对象
Shaping json object
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'}
}]
或
苹果:[{year:2013, amount:200},{year:2014,amount:1000}]
我试过使用 lodash 的 .map,.uniq,.reduce,.zipObject 但我仍然无法理解出。
使用了以下 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]
}
});
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'}
}]
或 苹果:[{year:2013, amount:200},{year:2014,amount:1000}]
我试过使用 lodash 的 .map,.uniq,.reduce,.zipObject 但我仍然无法理解出。
使用了以下 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]
}
});