【发布时间】:2016-11-17 05:05:40
【问题描述】:
这是我目前拥有的。
[
[
{"label":"Year","type":"number"},
{"label":"Value","type":"number"},
],
{"2013" : 70},
{"2014" : 78},
{"2015" : 125},
{"2016" : 153}
]
这是我用来生成上述代码的。
var data = [
{"Year":2013,"Product":"A","Value":0},
{"Year":2013,"Product":"B","Value":20},
{"Year":2013,"Product":"A","Value":50},
{"Year":2014,"Product":"D","Value":55},
{"Year":2014,"Product":"M","Value":23},
{"Year":2015,"Product":"D","Value":73},
{"Year":2015,"Product":"A","Value":52},
{"Year":2016,"Product":"B","Value":65},
{"Year":2016,"Product":"A","Value":88}
];
var sum = data.reduce(function(res, product) {
if (!(product.Year in res)) {
res[product.Year] = product.Value;
} else {
res[product.Year] += product.Value;
}
return res;
}, {});
var result = [];
for (var year in sum) {
var tmp = {};
tmp[year] = sum[year];
result.push(tmp);
}
result.splice(0, 0, [{
label: 'Year',
type: 'number'
}, {
label: 'Value',
type: 'number'
}]);
我想将它们组织成 [Year, Value] 对而不是对象,如下所示:
[["Year", "Value"], ["2013", 70], ["2014", 78], ["2015", 125], ["2016", 153]]
【问题讨论】:
-
您的意思是
["Year","Value"] ...并且您只想转换为数组 - 因为您寻求的输出根本不是对象 -
是的,实际上我需要这些数据用于 google.visualization.arrayToDataTable();
-
我刚刚编辑/更新了我的代码以向您展示我是如何生成数据的
-
你的输出要求还是不行……你是说
[["Year","Value"], ["2013" , 70], ["2014", 78], ["2015", 125], ["2016",153]] -
是的,正如我告诉你的,我需要这些数据用于 google.visualization.arrayToDataTable();如果你能以图表接受的任何格式给我,那就可以了。
标签: javascript angularjs arrays json object