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

Remove Saturdays and Sundays from dates array with Jquery

我试图从我的 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);

我认为问题出在我的"if"语句条件上。但是当我尝试编写两个单独的块时,我得到了相同的结果。

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

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(function(element, index){
    var dt = new Date(element);
    console.log( index + ": " + element, dt.getDay() );

    //not saturday or sunday
    return (dt.getDay() != 0 && dt.getDay() != 6);
});

console.log(weekdaysOnly);