在javascript中将时间数组转换为某个时间间隔数组?
我正在画布中实现图形。所以我有x轴和y轴。我正在以数组形式转换这两个值。x轴指向时间,y轴指向体积数据。 您可以查看屏幕截图了解更多信息: 这张图是根据某个数组绘制的 以前我得到的是价值: 对于Y轴[377622,42188]在javascript中将时间数组转换为某个时间间隔数组?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在画布中实现图形。所以我有x轴和y轴。我正在以数组形式转换这两个值。x轴指向时间,y轴指向体积数据。 您可以查看屏幕截图了解更多信息: 这张图是根据某个数组绘制的 以前我得到的是价值: 对于Y轴[377622,42188] 对于X轴[“02.20”、“4:30”、“08:50”、“09:10”] 所以我选择了X轴的开始时间(02.20)和结束时间(9:10),分为[“02.20”,“03:00”,“4:30”,“05:00”,“06:00”,“07:00”,“08:50”,“09:10”
对于X轴[“02.20”、“4:30”、“08:50”、“09:10”] 所以我选择了X轴的开始时间(02.20)和结束时间(9:10),分为[“02.20”,“03:00”,“4:30”,“05:00”,“06:00”,“07:00”,“08:50”,“09:10”]等小时 如果Y轴数组中没有数据,则根据X轴,Y轴将0放入数组中
call.all('data').get('navigation').then(function(resp){
setTimeout(function(){
var totalVolumeArr = _.map(resp.data,function(res){ return res.tot});
lineData2.labels = _.map(resp.data,function(res,idx){
var time = [];
if (typeof resp.data[idx - 1] !== 'undefined') {
if (((resp.data[idx - 1])._id.hr + 1) !== res._id.hr) {
for (var i = resp.data[idx - 1]._id.hr + 1; i < res._id.hr; i++) { time.push('0' +i + ':00');
}
}
}
var x = time.push(('0' + res._id.hr).slice(-2) + ':' + (''+ res._id.slot).slice(-2)+'0');
return time;
});
var flatArray = [].concat.apply([], lineData2.labels);
_.map(resp.data,function(res,idx){
var time=[];
var tempArr=[];
if (typeof resp.data[idx - 1] !== 'undefined') {
if (((resp.data[idx - 1])._id.hr + 1) !== res._id.hr) {
for (var i = resp.data[idx - 1]._id.hr + 1; i < res._id.hr; i++) {
if(jQuery.inArray('0' +i + ':00', flatArray) !== -1)
{
var indexValue='0' +i + ':00';
var indexPosition= flatArray.indexOf(indexValue);
totalVolumeArr.splice(indexPosition, 0, "0"); //push the 0 volume value into array of totalvolumearray
}
}
}
}
return tempArr;
})
xAxisValue = flatArray;
yAxisValue = totalVolumeArr;
});
call.all('data')。get('navigation')。然后(函数(resp){
setTimeout(函数(){
var totalVolumeArr=u.map(分别是数据、函数(res){return res.tot});
lineData2.labels=\映射(分别数据、函数(res、idx){
var时间=[];
如果(响应数据的类型[idx-1]!==“未定义”){
如果((分别数据[idx-1])。\u id.hr+1)!==res.\u id.hr){
对于(var i=resp.data[idx-1]。_id.hr+1;i
现在我想重新排列这两个数组Flaterray和TotalValueMearr
您可以认为xAxisValue=[“02.20”、“4:30”、“08:50”]yAxisValue=[377622,42] 导出输出: ** Xaxis值= ["02:20","02:30","02:40","02:50","03:00","03:10","03:10","03:20","03:30","03:40","03:50","04:00","04:10","04:20","04:30","04:40","04:50","05:00","05:10","05:20","05:30","05:40","05:50","06:00","06:10","06:20","06:30","06:40","06:50","07:00","07:10","07:20","07:30","07:40","07:50","08:00","08:10","08:20","08:30","08:40" “08:50”]
** ** 雅克西值= [377,0,0,0,0,0,0,0,0,0,0,0,0622,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42] **
如果我想看到每小时一次,上面的代码可以正常工作。但是现在我想设置数据10分钟的时间间隔。如果没有数据,那么时间应该在那里,数据量为0。请分享您的逻辑。哪种方法是最好的方法?关于您删除的问题:var result=array.map(function(time){[hours,mins]=time.split(“:”);小时=(+hours+5+~(mins/60))%24;分钟=(+mins+30)%60;返回小时+”:“+mins;});谢谢@Jonas。谢谢你的帮助me@V当问题结束时,我回答了:/,简单地删除会浪费大脑资源;)@Jonas.我不想删除这个问题,但我想我的问题是显示数组没有定义,我及时传递数组。在你删除的问题上:var result=array.map(function(time){[hours,mins]=time.split(“:”);hours=(+hours+5+~~(mins/60))%24;mins=(+mins+30)%60;return hours+”:“+分钟;});谢谢@Jonas。谢谢你的帮助me@V当问题结束时,我回答了:/,简单地删除会浪费大脑资源;)@Jonas。我不想删除问题。但继续投入。所以我认为我问题中的问题是显示数组未定义。我及时传递了数组。