嗨,我正在尝试使用Highcharts制作堆积的条形图,但是数据格式化的方式要被一系列使用,这让我感到震惊。
series: [{
name: 'John',
data: [5]
}, {
name: 'ee',
data: [2]
}, {
name: 'aa',
data: [7]
},{
name: 'zz',
data: [4]
},{
name: 'Joe',
data: [3]
}]
这就是示例站点在其上堆积的条形图的方式。我正在使用
$http.get()
最初从Web服务获取JSON格式的数据,如下所示:{
"id": 13,
"name": "JohnSnow",
"totalScore": 5.239947894580996,
"models": [
{
"id": 0,
"name": "Grey",
"score": 75.5
},
{
"id": 1,
"name": "Black",
"score": 1.2355425046127677
},
{
"id": 2,
"name": "Purple",
"score": 24.0705126173457
},
{
"id": 3,
"name": "Teal",
"score": 28.981312850901684
},
{
"id": 4,
"name": "Yellow",
"score": 31.373482114014525
},
{
"id": 5,
"name": "Green",
"score": 22.02040979235661
},
{
"id": 6,
"name": "Red",
"score": 11.137161646416322
},
{
"id": 7,
"name": "Blue",
"score": 25.83014182677578
},
{
"id": 8,
"name": "Orange",
"score": 4.793888180490194
}
]
}
我的原始方法是遍历
$http.get()
调用返回的数据,并将JSON对象添加到数组中,然后将序列设置为等于,但效果不佳。还有其他一些选择,或者有更简单的方法来获取格式。数据必须在Web服务上保持该格式,因此更改是不可能的。我有一个想工作的小伙伴here。 最佳答案
一个有趣的问题,我通常使用angular.forEach或称为下划线的库来处理angularJS中的数据处理。这是forEach版本。
data = $http.get(); // suppose you have the data
result = [];
angular.forEach(data.models, function(item) {
// simple way is to take item as the original form
result.push(item);
// or do your own way
result.push({
name: item.name,
data: [item.score]
});
});
现在结果变量就是您现在想要的那个。
关于javascript - 格式化要在Highcharts系列中使用的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30598379/