使用Jquery从日期数组中删除周六和周日

使用Jquery从日期数组中删除周六和周日,jquery,arrays,date,comparison-operators,Jquery,Arrays,Date,Comparison Operators,我正试图从jquery数组中删除周末,但我要么删除了周六,要么删除了周日,从未同时删除。 你能检查一下我做错了什么吗 $(dates).each(function( index ) { var dt = new Date(dates[index]); console.log( index + ": " + dates[index], dt.getDay() ); if ( dt.getDay() == 0 || dt.getDay() == 6 ) { d

我正试图从jquery数组中删除周末,但我要么删除了周六,要么删除了周日,从未同时删除。 你能检查一下我做错了什么吗

$(dates).each(function( index ) {
    var dt = new Date(dates[index]);
    console.log( index + ": " + dates[index], dt.getDay() );
    if ( dt.getDay() == 0 || dt.getDay() == 6 ) {
        dates.splice(index, 1);
    }
});
console.log(dates);

我认为问题在于我的“如果”陈述条件。但当我尝试写入两个单独的块时,得到的结果是相同的。

不要从原始日期数组中删除值,而是尝试将其保存在临时数组中。这是因为若从原始日期数组中删除值,将导致循环错误

var date_tmp = [];
$(dates).each(function( index ) {
    var dt = new Date(dates[index]);
    console.log( index + ": " + dates[index], dt.getDay() );
    if ( dt.getDay() != 0 && dt.getDay() != 6 ) {
        date_tmp.push(dates[index]);
    }
});
console.log(date_tmp);

不要从原始日期数组中删除值,而是尝试将其保存在临时数组中。这是因为若从原始日期数组中删除值,将导致循环错误

var date_tmp = [];
$(dates).each(function( index ) {
    var dt = new Date(dates[index]);
    console.log( index + ": " + dates[index], dt.getDay() );
    if ( dt.getDay() != 0 && dt.getDay() != 6 ) {
        date_tmp.push(dates[index]);
    }
});
console.log(date_tmp);
尝试过滤

var weekdaysOnly=dates.filter(函数(元素,索引){
var dt=新日期(要素);
log(索引+”:“+元素,dt.getDay());
//不是周六或周日
返回(dt.getDay()!=0和&dt.getDay()!=6);
});
console.log(周日)请尝试进行筛选

var weekdaysOnly=dates.filter(函数(元素,索引){
var dt=新日期(要素);
log(索引+”:“+元素,dt.getDay());
//不是周六或周日
返回(dt.getDay()!=0和&dt.getDay()!=6);
});

console.log(周日)修改正在迭代的集合需要额外的工作来“修复”索引。如果删除“当前”元素,“下一个”元素会发生什么情况?(不要使用jQuery来迭代日期数组…)我建议对日期使用一种形式的过滤器。修改您正在迭代的集合需要额外的工作来“修复”索引。如果删除“当前”元素,“下一个”元素会发生什么情况?(不要使用jQuery来迭代日期数组…)我建议对日期使用一种形式的过滤器。参考:谢谢,这比试图从阵列中移除要好得多,也比试图从阵列中移除要好得多。我应该考虑一下临时变量。ThanksIt也起作用。我应该考虑一下临时变量。谢谢