即使满足条件,Array.some() 也始终为假



我正在尝试编写一个函数,该函数获取表示日期的字符串数组,然后检查给定日期是否在数组中。但是,即使满足条件,我也总是会false

下面是一个最小的代码:

let dates = ['2020-06-29', '2020-07-13'];
dates = dates.map(some_day => new Date(some_day));
const someDay = new Date(2020, 5, 29);
console.log(dates.some(some_day => some_day.getTime() === someDay.getTime()));

编辑1:(仍然不起作用,但我正在改进代码(

let dates = ['2020-06-29', '2020-07-13'];
dates = dates.map(some_day => new Date(some_day));
let someDay = new Date(2020, 5, 29);
const date_string = `${someDay.getFullYear()}-${someDay.getMonth() + 1}-${someDay.getDate()}`;
someDay = new Date(date_string);
console.log(dates.some(some_day => some_day.getTime() === someDay.getTime()));

由于时区差异,请操作时区偏移量,或者:

dates.some(some_day => 
(
(some_day.getFullYear() === someDay.getFullYear()) &&
(some_day.getMonth() === someDay.getMonth()) &&
(some_day.getDate() === someDay.getDate())
)
)

最新更新