Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果有对象集合,则使用jquery.InArray()_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 如果有对象集合,则使用jquery.InArray()

Javascript 如果有对象集合,则使用jquery.InArray(),javascript,jquery,arrays,Javascript,Jquery,Arrays,在我的javascript中,我有一个日历对象数组 每个日历对象都有一个日历事件对象数组 每个CalendarEvent对象都有一个属性日期、名称 我想检查,给出一个日期,它存在于一个特定的日历中 我想看看是否可以使用jquery.InArray(),但似乎我必须遍历日历中的每个CalendarEvent对象才能找到它 有没有更快的方法来做这个搜索 有没有更快的方法来做这个搜索 您可以建立索引(例如反向查找) 例如,您的日历对象可以具有日期=>CalendarEvent映射的对象。键(日期)必须

在我的javascript中,我有一个日历对象数组

每个日历对象都有一个日历事件对象数组

每个CalendarEvent对象都有一个属性日期、名称

我想检查,给出一个日期,它存在于一个特定的日历中

我想看看是否可以使用jquery.InArray(),但似乎我必须遍历日历中的每个CalendarEvent对象才能找到它

有没有更快的方法来做这个搜索

有没有更快的方法来做这个搜索

您可以建立索引(例如反向查找)


例如,您的日历对象可以具有日期=>CalendarEvent映射的对象。键(日期)必须序列化为字符串(要插入到对象中),因此您可能希望使用UNIX时间作为键。

根据您概述的结构,检测特定日期是否存在的唯一方法是在日历对象数组中循环,然后在其事件中循环。正如strager所提到的,您可以维护一个将每个日期映射到特定索引或CalendarEvent的对象,但这可能需要修改Calendar逻辑