Javascript 在日期范围内查找工作日

Javascript 在日期范围内查找工作日,javascript,arrays,Javascript,Arrays,我试图在数组中的某个范围内推送日期,但它只推送最后一个日期n次,而不是要求的单个日期 function getBusinessDatesCount(startDatetest, endDatetest) { var curDate = startDatetest; var weekdays = []; while (curDate <= endDatetest) { var dayOfWeek = curDate.getDay();

我试图在数组中的某个范围内推送日期,但它只推送最后一个日期n次,而不是要求的单个日期

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)