我正在使用 MultipleDatePicker选择一年中的多个日期。我添加了一个复选框,选中后它将选择日历中的所有星期日。
取消选中时出现问题。它不会删除日历中所有选定的星期日。我使用 getTime()
进行了比较,如下面的代码所示:
var selected = $scope.selectedDates;
for (var i = 0; i < $scope.selectedDates.length; i++) {
var date1 = new Date(selected[i]).getTime();
console.log('date1[' + i + '] = ' + date1 + ' ' + moment($scope.selectedDates[i], 'MM-DD-YYYY'));
for (var j = 0; j < sundays.length; j++) {
var date2 = new Date(sundays[j]).getTime();
console.log('date2[' + j + '] = ' + date2 + ' ' + moment(sundays[j], 'MM-DD-YYYY'));
if (date1 === date2) {
selected.splice(i, 1);
break;
}
}
}
有些相同,有些不同。代码有什么问题?
Here is the plunker显示问题。
最佳答案
问题是您从数组中删除了一项,并且您的索引 i
循环增加,因此跳过了一项。要解决此问题,请在每次删除后减少 i
:
// ...
if (date1 === date2) {
selected.splice(i, 1);
i--;
break;
}
关于javascript - 使用另一个日期数组删除日期数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43935737/