Highcharts-JSON数据排序JavaScript

Highcharts-JSON数据排序JavaScript,javascript,json,sorting,highcharts,Javascript,Json,Sorting,Highcharts,我在为我的高图表折线图排序数据时遇到问题。当使用一个数组时(今天),图形显示正常。但是我们有一个次要的“昨天”数据按钮,假设它将两个数组合并到一个图表中 我有一个排序功能,似乎无法正确显示数据 45海图错误#15:www.Highcharts.com/errors/15 代码 function paintChart(){ var yesterdayEnabled = $('#showYesterday').is(':checked'); $.each(chart.series,

我在为我的
高图表
折线图排序数据时遇到问题。当使用一个数组时(今天),图形显示正常。但是我们有一个次要的“昨天”数据按钮,假设它将两个数组合并到一个图表中

我有一个排序功能,似乎无法正确显示数据

45海图错误#15:www.Highcharts.com/errors/15

代码

function paintChart(){
    var yesterdayEnabled = $('#showYesterday').is(':checked');
    $.each(chart.series, function(i,s) {
        var flowObj = inFlowObj;
        if(view === 'ex'){
            flowObj = exFlowObj;
        }
        thisZone = s.options.id;
        var allData = flowObj[thisZone].flow;
        if(yesterdayEnabled){
            allData = allData.concat(flowObj[thisZone].yestFlow);
            allData.sort(custom_sort);
        }

        s.setData(allData); 
    });
}

function custom_sort(a, b) {
    return new Date(a.timeStamp).getTime() - new Date(b.timeStamp).getTime();
}
我曾尝试在
setData
函数中对数据进行排序,并在
series:seriesData.sort(custom_sort)
中对其进行定义,但均无效。 是否有其他方法对这些数据进行排序

错误

示例数据

昨天-

{"status":"success","count":3384,"data":[{"timeStamp":"2016-06-13T04:00:00Z","interface":"mid","id":23,"up":2292.61,"pos":2450.0,"neg":-9999.0},...
今天


根据建议,我创建了一个修改后的
paintChart()
函数,该函数将数据按正确的顺序推送到数组中:

function paintChart(){
    var yesterdayEnabled = $('#showYesterday').is(':checked');
    $.each(chart.series, function(i,s) {
        var flowObj = inFlowObj;
        if(view === 'ex'){
            flowObj = exFlowObj;
        }
        thisZone = s.options.id;
        var allData = flowObj[thisZone].flow;
        var addYestData = [];
        if(yesterdayEnabled){
            Highcharts.each(flowObj[thisZone].yestFlow, function(p, i) {
                addYestData.push(p);
            })
            Highcharts.each(flowObj[thisZone].flow, function(p, i) {
                addYestData.push(p);
            })

            s.setData(addYestData);
        } else{
            s.setData(allData);
        }


    });
}

根据建议,我创建了一个修改后的
paintChart()
函数,该函数将数据按正确的顺序推送到数组中:

function paintChart(){
    var yesterdayEnabled = $('#showYesterday').is(':checked');
    $.each(chart.series, function(i,s) {
        var flowObj = inFlowObj;
        if(view === 'ex'){
            flowObj = exFlowObj;
        }
        thisZone = s.options.id;
        var allData = flowObj[thisZone].flow;
        var addYestData = [];
        if(yesterdayEnabled){
            Highcharts.each(flowObj[thisZone].yestFlow, function(p, i) {
                addYestData.push(p);
            })
            Highcharts.each(flowObj[thisZone].flow, function(p, i) {
                addYestData.push(p);
            })

            s.setData(addYestData);
        } else{
            s.setData(allData);
        }


    });
}

返回新日期(a.timeStamp).getTime()-新日期(b.timeStamp).getTime();有problem@NishithKantChaturvedi我从中得到这个,在将它们转换为一个数组之前,是否对两个序列进行了排序?如果是,我认为您根本不需要排序方法,您可以简单地创建新的数据数组,并在该数组中推送昨天的数据,然后推送今天的数据。在这里,您可以看到与您的问题类似的示例:返回新日期(a.timeStamp).getTime()-新日期(b.timeStamp).getTime();有problem@NishithKantChaturvedi我从中得到这个,在将它们转换为一个数组之前,是否对两个序列进行了排序?如果是,我认为您根本不需要排序方法,您可以简单地创建新的数据数组,并在该数组中推送昨天的数据,然后推送今天的数据。在这里,您可以看到与您的问题类似的示例: