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我从中得到这个,在将它们转换为一个数组之前,是否对两个序列进行了排序?如果是,我认为您根本不需要排序方法,您可以简单地创建新的数据数组,并在该数组中推送昨天的数据,然后推送今天的数据。在这里,您可以看到与您的问题类似的示例: