我有以下数据:
var data = {"categories":["GLA Age: 65+"],"series":[{"name":"Hendon","data":[11.98]},{"name":"High Barnet","data":[17.86]},{"name":"Mill Hill","data":[13.73]},{"name":"Oakleigh","data":[17.42]},{"name":"Totteridge","data":[17.76]}]};
我需要'names'作为类别名称,所以我使用'events> load'将其应用于highcharts代码:
var seriesData = this.series;
var tCategories = [];
for (i = 0; i < seriesData.length; i++) {
tCategories.push(seriesData[i].name);
}
this.xAxis[0].setCategories(tCategories);
然后我需要将'data'设置为一个数组,如
[11.98, 17.86, 13.73, 17.42, 17.76]
我遇到的问题是第一批数据显示在第一栏:
示例:http://jsfiddle.net/zidski/13rexxyo/3/
创建新数组的代码([11.98,17.86,13.73,17.42,17.76])
var arrayofArrays = data.series.map(function (item) {
return JSON.stringify([item.data]);
});
var seriesString = arrayofArrays;
seriesString = seriesString;
var n = JSON.stringify(seriesString).replace(/\[|]|"/g, '');
var g = '[' + n + ']';
var h = JSON.stringify(g);
var seriesC = JSON && JSON.parse(g) || $.parseJSON(g);
this.series[0].setData(seriesC);
答案 0 :(得分:2)
如果我理解正确的话,似乎过于复杂(虽然你想要的结果并不完全清楚)。
您可以循环访问JSON并轻松返回数据数组,而无需使用stringify
或类似内容,也无需加载事件:
<强>代码:强>
var title = rawData.categories[0];
var chartData = []
$.each(rawData.series, function(i, node) {
chartData.push({ 'name': node.name, 'y': node.data[0] })
});
然后:
series: [{
data: chartData
}]
更新了小提琴:
输出