gpt4 book ai didi

javascript - 检查数组是否包含日期

转载 作者:行者123 更新时间:2023-12-02 03:45:25 25 4
gpt4 key购买 nike

如何检查数组是否包含日期

const dateArr = [new Date("12-12-2012"), new Date("06-06-2006"), new Date("01-01-2001")]

dateArr.includes(new Date("12-12-2012"))

false

这是为什么?

最佳答案

每次调用 new Date("12-12-2012") 时,都会创建一个新对象。这些对象恰好在它们内部具有相同的值,但它们是不同的对象。 dateArray.includes 将检查引用标识,但检查失败,因为它们是不同的对象。

如果你想检查是否有一个元素符合某个条件,你可以使用array.find,并指定什么应该算作“相等”:

const dateArr = [new Date(1), new Date(2), new Date(3)]

const testDate = new Date(1);
const match = dateArr.find(d => d.getTime() === testDate.getTime())
const hasMatch = !!match; // convert to boolean
console.log(hasMatch);

PS,您应该避免使用日期字符串构造日期,因为浏览器之间存在不一致。例如,在 Firefox 上,new Date("12-12-2012") 生成无效日期

关于javascript - 检查数组是否包含日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46956779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com