我的数据如下:
data
我如何使用map来组合数组项,以便连接data = [
[
{"name":"cpumhz","data":[[1433856538,0],[1433856598,0],[1433856538,0],[1433856598,0], [1433856538,0],[1433856598,0]]},
{"name":"mem","data":[[1433856538,13660],[1433856598,13660], [1433856538,13660],[1433856598,13660], [1433856538,13660],[1433856598,13660]]}
]
];
属性?
像这样:
res = []
cpudata = _.flatten([data[0][0].data, data[1][0].data, data[2][0].data])
res.push({name: 'cpumhz', data: cpudata})
memdata = _.flatten([data[0][1].data, data[1][1].data, data[2][1].data])
res.push({name: 'mem', data: memdata})
通过非编程方式这样做我越来越近了:
{{1}}
答案 0 :(得分:4)
查看使用reduce功能。 Underscore / lodash具有相同的功能。
基本上,您希望将data
和将减少降为1个包含2个值的数组。以下内容应该有效:
var reducedData = data.reduce(function(prev, cur) {
prev.forEach(function(value, index) {
value.data = value.data.concat(cur[index].data);
});
return prev;
});
您可以查看data
中的每个值并 reduce 。使用当前子数据连接先前的子数据并返回新值。
答案 1 :(得分:2)