gpt4 book ai didi

javascript - 循环对象数组

转载 作者:行者123 更新时间:2023-11-28 12:42:59 26 4
gpt4 key购买 nike

我正在开发一个 ASP.NET 应用程序,该应用程序使用了大量 jQuery UI 控件,特别是日期选择器。

在我的 Web 服务中,我正在调用数据库并检索对象列表,然后将它们传递回我的 javascript,在其中我将它们解析为包含 1 个或多个对象的数组,如下所示:

javascript object

我需要包含某种逻辑,在其中我可以循环遍历这个对象数组,并检查 javascript Date 是否位于对象的 EndDate 和 StartDate 属性之间,以便我可以为该对象应用 css 样式日期选择器。第一个问题,有没有办法将 EndDate/StartDate 属性从这种格式转换为有效的 javascript 日期?如果是这样,我如何迭代数组并应用逻辑来查看日期是否在范围内?

非常感谢任何帮助!

编辑:我注意到这里的图像有点难以看到,您可以在这里更清楚地阅读属性:

image link

根据要求,这里是一些示例代码:

function createDateRangesForCalendar() {
$.ajax({
type: "POST",
url: "../Services/BookingService.asmx/GetCalendarDateRanges",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (response) {
dateRanges = $.parseJSON(response.d);
},
error: function (xhr, textStatus, thrownError) {
alert(textStatus);
alert(thrownError);
}
});
}

function markInvalidDates(date) {

var isHoliday = false;
dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();

isHoliday = checkIsHoliday(date);

if ($.inArray(dmy, invalidDays) == -1) {

for (var i = 0; i < dateRanges.length; i++) {
// if date falls in between start and end date of object[i] return something like: return [true, "holiday", "Holiday Rates Apply - Minimum 14 days"];
// else loop through to the next object and try there
}

if (isHoliday == true) {
return [true, "holiday", "Holiday Rates Apply - Minimum 14 days"];
} else {
return [true, ""];
}
} else {
return [false, "unavailable", "Unavailable"];
}
}

最佳答案

第一个问题,有没有办法将 EndDate/StartDate 属性从这种格式转换为有效的 javascript 日期?

格式似乎是这样的:/Date(MILLISECONDS)/。可以通过以下方式获取有效的 JS 日期对象:new Date(s.match(/Date\((\d+)/)[1])

如果是这样,我如何迭代数组并应用逻辑来查看日期是否在范围内?

var re = /Date\((\d+)/;
for(var i in arr) {
var start = new Date(arr[i].startDate.match(re)[1]),
end = new Date(arr[i].endDate.match(re)[1]);
if(myDate < end && myDate > start)
// do something.
}

按照我的理解,上面似乎回答了你的问题。

关于javascript - 循环对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10901713/

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