2010-09-04 2 views
1

в моем javascript, у меня есть массив Календарь объектов.using jquery.InArray() если у меня есть коллекция объектов

Каждый Календарь объекты имеет массив CalendarEvent объектов

Каждый CalendarEvent объект имеет свойство дата, имя.

Я хочу проверить, указать дату, она существует в определенном Календаре.

Я хотел бы видеть, если я мог бы использовать jQuery.inArray(), но кажется, что я должен перебрать каждый CalendarEvent объекта в Календарь, чтобы найти его.

есть ли более быстрый способ для этого поиска?

ответ

2

есть ли более быстрый способ для этого поиска?

Вы можете создать индекс (например, обратный поиск).

Например, ваш объект Calendar может иметь объект Date => CalendarEvent-сопоставлений. Ключ (дата) должен быть сериализован в строку (для вставки в объект), поэтому вы можете использовать время UNIX в качестве ключа.

0

С учетом структуры, которую вы указали, единственный способ определить, существует ли конкретная дата, - это цикл через массив объектов Calender, а затем для последующего цикла его событий. Как упоминал стражник, вы могли бы поддерживать сопоставление объектов каждой дате с определенным индексом или CalenderEvent, но это, по-видимому, потребовало бы изменения логики Calender.