gpt4 book ai didi

javascript - 根据日期数组检查日期

转载 作者:数据小太阳 更新时间:2023-10-29 04:39:55 27 4
gpt4 key购买 nike

我正在尝试编写一个函数,根据日期是否存在于数组中来返回 TRUE 或 FALSE 值。目前我有这个:

function isInArray(value, array) {
var a = array.indexOf(value) > -1;

if (a == false) {
return false; //DATE DOES NOT EXIST
}
else {
return true; //DATE EXISTS IN ARRAY
}
}

现在通常我会使用 for 循环,但是我使用这个 while 循环生成了一个介于开始日期和结束日期之间的日期列表:

 while (day > 0) {
var tDate = new Date(sDate.addDays(dayCounter));
datesArray.push(tDate);
day = day - 1; //DEDUCT THE DAYS AS ADDED

var dateExists = isInArray(value, array);
if (dateExists == false) {

}
else {
matchedDays++;
}
daysCounter++;
}

但是这不起作用并且总是返回 FALSE,我需要做什么才能使它起作用并返回正确的值?

样本数据:ARRAY[26/12/2016, 27/12/2016, 28/12/2016, 29/12/2016]

[27/12/2016] 中传递的值

  • 如果数组中存在该值则返回TRUE
  • 如果数组中不存在该值则返回FALSE

可能是上面一个简单的错误!所以谢谢你的帮助。时间也会影响检查的日期吗?

最佳答案

您可以尝试使用 find()方法(如果支持 ecmascript):

案例:数组包含字符串

var array = ["26/12/2016", "27/12/2016", "28/12/2016", "29/12/2016"];
var value1 = "26/12/2016"; //exists
var value2 = "26/12/2026"; //doesn't exist

function isInArray(array, value) {
return (array.find(item => {return item == value}) || []).length > 0;
}

console.log(isInArray(array, value1));
console.log(isInArray(array, value2));


案例:数组包含日期对象

var array = [new Date("December 26, 2016 00:00:00"), new Date("December 27, 2016 00:00:00"), new Date("December 28, 2016 00:00:00"), new Date("December 29, 2016 00:00:00")];
var value1 = new Date("December 26, 2016 00:00:00"); //exists
var value2 = new Date("December 16, 2026 00:00:00"); //doesn't exist


function isInArray(array, value) {
return !!array.find(item => {return item.getTime() == value.getTime()});
}

console.log(isInArray(array, value1));
console.log(isInArray(array, value2));

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

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