2013-07-29 4 views
0

Мне нужно показать следующее событие на моем веб-сайте. Нет доступной базы данных. Моя идея: создать массив javascript с Date-Objects, а затем мне нужна функция, чтобы сказать: Дайте мне следующую предстоящую дату моего созданного DateObject-Array. Как я могу это сделать?Получение следующей датированной даты пула объектов даты

+1

Ваш вопрос не очень ясен. Почему бы просто не выполнить поиск по массиву (при условии, что он отсортирован) и просто вызвать элемент массива после этого? Кроме того, почему вы не можете использовать базу данных? – lazyCrab

+0

У меня есть список событий в следующие дни. \t И мне нужен сценарий, чтобы показать следующее предстоящее событие. \t Когда я создаю массив с датами, как мой сайт знает завтра, что такое следующее событие? –

+0

У вас есть мероприятие каждый день? Ваш массив отсортирован? Ваш массив содержит предыдущие события или они удалены? Как структурируются элементы массива? – lazyCrab

ответ

0

Используя эту функцию двоичного поиска, которую я нашел после простого поиска и бесстыдно скопировал из обзора кода, вы можете передать ей массив событий и дату завтрашнего дня (Date(today.getTime() + (24 * 60 * 60 * 1000))).

function binarySearch(arr, find) 
{ 
    var low = 0, high = arr.length - 1, i, comparison; 
    while (low <= high) 
    { 
    i = Math.floor((low + high)/2); 
    if (arr[i] < find) 
    { 
     low = i + 1; 
    } 
    if (arr[i] > find) 
    { 
     high = i - 1; 
    } 
    return i; 
    } 
    return null; 
} 

var currentEvent = binarySearch(eventsArray, Date(today.getTime() + (24 * 60 * 60 * 1000))); 

//code to display eventsArray[currentEvent] here 
Смежные вопросы