给定此数据时,我在填充Highcharts列图的系列部分时遇到问题。请注意col1,col2,col3是动态创建的,因此这些名称可能会发生变化,值的数量也会发生变化。
var objData = {
"1995":{
"col1":300.75,
"col2":1000,
"col3":500
},
"1996":{
"col1":300,
"col2":400,
"col3":900}
}
这就是我想要的系列部分:
series: [{
name: 'col1',
data: [300.75,300]
},
{
name: 'col2',
data: [1000,400]
},
{
name: 'col3',
data: [500,900]
}
];
我创建了一个JS小提琴:http://jsfiddle.net/jAPV5/1/并尝试构建循环,但没有运气。
如果有人可以提供帮助,那就太好了。
由于 干杯
答案 0 :(得分:1)
请参阅此小提琴中的解决方案:http://jsfiddle.net/jAPV5/2/
for (var key in objData) {
//console.log(key); 1995, 1996
var obj = objData[key];
categories.push(key);
for (var item in obj) {
var targetSeries ;
var bFound = false;
for(var i=0; i< series.length; i++){
if(item == series[i].name){
bFound = true;
targetSeries = series[i];
}
}
if(!bFound) {
targetSeries = {'name': item, 'data':[]};
series.push(targetSeries);
}
var val = obj[item]
targetSeries.data.push(val);
}
}