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

时间:2018-02-27 17:04:24

标签: 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 ) {
        dates.splice(index, 1);
    }
});
console.log(dates);

我认为问题是我的"如果"声明条件。但是当我尝试写两个单独的块时,我得到相同的结果。

2 个答案:

答案 0 :(得分:1)

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

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);

答案 1 :(得分:1)

尝试过滤。



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);