javascript - jQuery $.inArray() 无法与使用 jQuery makeArray() 制作的数组正常工作

标签 javascript jquery

我用这个创建了一个日期数组:

 var holidays = ["7/24/2010","7/25/2010"];
 var holidaysArray = jQuery.makeArray(holidays);

然后测试数组中是否存在 myDate(日期对象):

if ($.inArray(myDate, holidaysArray ) == -1) {....}

但是,即使 myDate 是这两天之一,测试也始终返回 -1。我试图避免使用日期字符串来进行测试。

如何将 inArray 函数与日期对象和日期对象数组一起使用? (我不确定假期数组是否实际上是日期对象数组,也许这就是测试失败的原因。)

最佳答案

我认为您正在比较 DateString 对象,这就是为什么您总是得到 false。

参见:

new Date("12/12/2000") == "12/12/2000" // this is false

编辑:

还有!请注意:

new Date("12/12/2000") == new Date("12/12/2000") // this is false too!

您应该像这样使用纪元时间值来比较日期

new Date("12/12/2000").valueOf() == new Date("12/12/2000").valueOf() // this is TRUE

关于javascript - jQuery $.inArray() 无法与使用 jQuery makeArray() 制作的数组正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3322636/

相关文章:

javascript - 如何在文本框中输入文本后显示按钮?

javascript - Vue.js <transition-group> 仅在最后一个元素上应用动画

javascript - jQuery 函数冲突

javascript - 将字段传递给脚本

javascript - 基于 javascript 函数隐藏/显示 Accordion

javascript - 如何获取浏览器不支持的 CSS 属性的值?

java - 在客户端 (GWT) 更新 Web 应用程序的最佳实践

javascript - 当输入文本被清除时,如何隐藏ajax搜索结果?

javascript - 选择从 jQuery 隐藏代码中禁用的文本框的更改

jQuery 选择器性能