Javascript 在日期范围内查找工作日
我试图在数组中的某个范围内推送日期,但它只推送最后一个日期n次,而不是要求的单个日期Javascript 在日期范围内查找工作日,javascript,arrays,Javascript,Arrays,我试图在数组中的某个范围内推送日期,但它只推送最后一个日期n次,而不是要求的单个日期 function getBusinessDatesCount(startDatetest, endDatetest) { var curDate = startDatetest; var weekdays = []; while (curDate <= endDatetest) { var dayOfWeek = curDate.getDay();
function getBusinessDatesCount(startDatetest, endDatetest) {
var curDate = startDatetest;
var weekdays = [];
while (curDate <= endDatetest) {
var dayOfWeek = curDate.getDay();
if (!((dayOfWeek === 6) || (dayOfWeek === 0))) {
weekdays.push(curDate);
}
curDate.setDate(curDate.getDate() + 1);
}
console.log(weekdays);
}
var startDatetest = new Date('05/03/2016');
var endDatetest = new Date('05/10/2016');
var numOfDates = getBusinessDatesCount(startDatetest, endDatetest);
函数getBusinessDateScont(startDatetest、endDatetest){
var curDate=开始日期测试;
var工作日=[];
虽然(curDate当前内存中只有两个
date
对象,但是startDatetest
和endDatetest
-更改curDate
将更改startDatetest
,因为对象变量基本上引用Javascript中的内存位置。(创建引用对象的新变量,如curDate=startDatetest
,不会克隆对象,它只会将引用复制到对象在内存中的位置)。您需要克隆日期
对象:
函数getBusinessDateScont(startDatetest、endDatetest){
var curDate=开始日期测试;
var工作日=[];
虽然(curDate当前内存中只有两个
date
对象,但是startDatetest
和endDatetest
-更改curDate
将更改startDatetest
,因为对象变量基本上引用Javascript中的内存位置。(创建引用对象的新变量,如curDate=startDatetest
,不会克隆对象,它只会将引用复制到对象在内存中的位置)。您需要克隆日期
对象:
函数getBusinessDateScont(startDatetest、endDatetest){
var curDate=开始日期测试;
var工作日=[];
while(curDate您需要将一个新日期对象推入数组中。否则,您将一次又一次地添加对同一对象的引用
function getBusinessDatesCount(startDatetest, endDatetest) {
var curDate = startDatetest;
var weekdays = [];
while (curDate <= endDatetest) {
var dayOfWeek = curDate.getDay();
if(!((dayOfWeek === 6) || (dayOfWeek === 0))) {
weekdays.push(new Date(curDate));
}
curDate.setDate(curDate.getDate() + 1);
}
console.log(weekdays);
}
var startDatetest = new Date('05/03/2016');
var endDatetest = new Date('05/10/2016');
var numOfDates = getBusinessDatesCount(startDatetest,endDatetest);
函数getBusinessDateScont(startDatetest、endDatetest){
var curDate=开始日期测试;
var工作日=[];
while(curDate您需要将一个新日期对象推入数组中。否则,您将一次又一次地添加对同一对象的引用
function getBusinessDatesCount(startDatetest, endDatetest) {
var curDate = startDatetest;
var weekdays = [];
while (curDate <= endDatetest) {
var dayOfWeek = curDate.getDay();
if(!((dayOfWeek === 6) || (dayOfWeek === 0))) {
weekdays.push(new Date(curDate));
}
curDate.setDate(curDate.getDate() + 1);
}
console.log(weekdays);
}
var startDatetest = new Date('05/03/2016');
var endDatetest = new Date('05/10/2016');
var numOfDates = getBusinessDatesCount(startDatetest,endDatetest);
函数getBusinessDateScont(startDatetest、endDatetest){
var curDate=开始日期测试;
var工作日=[];
while(curDate)