操纵数组以在highcharts上通过setData添加

时间:2016-05-06 14:24:45

标签: javascript jquery arrays highcharts

我有以下数据:

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);

1 个答案:

答案 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
}]

更新了小提琴:

输出

screenshot