香草 JS for 循环问题
vanilla JS for-loop issue
在 rosteringArray() 的整个 for 循环中,array
应该是这样的。
array[0] = startDate(以毫秒为单位)
array[1] = startDate(以毫秒为单位)+ 86400000
...
array[array.length-1] = endDate(以毫秒为单位)
但事实并非如此。
如何开发此代码?
var rosteringArray = function(yy1, mm1, dd1, yy2, mm2, dd2){
var date = new Date(yy1,mm1,dd1);
var sDate = new Date(date);
var timeStart = date.getTime() + 86400000*9; //
var date = new Date(yy2,mm2,dd2);
var sDate = new Date(date);
var timeEnd = date.getTime() + 86400000*9;
var end = timeStart;
var start = timeEnd;
var countDateBetween = (end - start)/86400000 +1;
var array = new Array;
for (var g = 0; g < countDateBetween; g++){
for (var h =setStart; h < setEnd; h=h+86400000){
array[g] = h;
return array;
}
}
}
console.log(rosteringArray(2020,0,1,2020,0,03));
您混合了 属性 个值:
var end = timeStart; var start = timeEnd;
并且您不需要第二个循环,它将始终为数组中的所有属性设置最后一天的值。
看看工作片段:
var rosteringArray = function(yy1, mm1, dd1, yy2, mm2, dd2){
var date = new Date(yy1,mm1,dd1);
var sDate = new Date(date);
var timeStart = date.getTime() + 86400000*9; //
var date = new Date(yy2,mm2,dd2);
var sDate = new Date(date);
var timeEnd = date.getTime() + 86400000*9;
var end = timeEnd;
var start = timeStart;
console.log(start);
console.log(end);
var countDateBetween = (end - start)/86400000 +1;
console.log(countDateBetween);
var array = new Array;
var h =start;
for (var g = 0; g < countDateBetween; g++){
array[g] = h;
h=h+86400000;
}
return array;
}
console.log(rosteringArray(2020,0,1,2020,0,03));
在 rosteringArray() 的整个 for 循环中,array
应该是这样的。
array[0] = startDate(以毫秒为单位)
array[1] = startDate(以毫秒为单位)+ 86400000
...
array[array.length-1] = endDate(以毫秒为单位)
但事实并非如此。
如何开发此代码?
var rosteringArray = function(yy1, mm1, dd1, yy2, mm2, dd2){
var date = new Date(yy1,mm1,dd1);
var sDate = new Date(date);
var timeStart = date.getTime() + 86400000*9; //
var date = new Date(yy2,mm2,dd2);
var sDate = new Date(date);
var timeEnd = date.getTime() + 86400000*9;
var end = timeStart;
var start = timeEnd;
var countDateBetween = (end - start)/86400000 +1;
var array = new Array;
for (var g = 0; g < countDateBetween; g++){
for (var h =setStart; h < setEnd; h=h+86400000){
array[g] = h;
return array;
}
}
}
console.log(rosteringArray(2020,0,1,2020,0,03));
您混合了 属性 个值:
var end = timeStart; var start = timeEnd;
并且您不需要第二个循环,它将始终为数组中的所有属性设置最后一天的值。
看看工作片段:
var rosteringArray = function(yy1, mm1, dd1, yy2, mm2, dd2){
var date = new Date(yy1,mm1,dd1);
var sDate = new Date(date);
var timeStart = date.getTime() + 86400000*9; //
var date = new Date(yy2,mm2,dd2);
var sDate = new Date(date);
var timeEnd = date.getTime() + 86400000*9;
var end = timeEnd;
var start = timeStart;
console.log(start);
console.log(end);
var countDateBetween = (end - start)/86400000 +1;
console.log(countDateBetween);
var array = new Array;
var h =start;
for (var g = 0; g < countDateBetween; g++){
array[g] = h;
h=h+86400000;
}
return array;
}
console.log(rosteringArray(2020,0,1,2020,0,03));