首页 > 解决方案 > 日期数组中的Javascript indexOf总是产生-1

问题描述

我在检查日期是否在我的数组中时遇到问题。

我参考这篇文章如何在日期数组中正确使用 JavaScript indexOf

但是当我在我的项目中使用它时,它总是导致-1。

这是我的代码

for (var current = dateStart; current <= dateEnd; current.setDate(current.getDate() + 1)) {
    console.log(this.leaveState.currentHoliday.map(Number).indexOf(+current));
}

我需要检查current日期是否在currentHoliday数组中。

标签: javascriptarraysdatetimevue.js

解决方案


我认为映射不需要循环到您的数组中。并且 -1 在某种程度上意味着您的数组中不存在日期。

也许是因为在每个循环中,您在看到实际日期之前都会添加一天。

我想你可以试试:

    var alldays = [...];
    //you should eliminate these two codes
//    datestart = something;
//  dateend = something;
    var holiday;
    for(var i in alldays){
           console.log(alldays.map(Number).indexOf(this.leaveState.currentHoliday));
    }

推荐阅读