Спасибо,
melky, за то, что подключился к нашей беседе.
Да, такой способ наверное наиболее подходит для данной ситуации (хотя и пробежаться по объектам-массивам можно), в цикл
for и
break можно вставить.
Не поленюсь, приведу, код подобного
forEach работающего цикла для массива
schedule (расчёт времени наверное логично вынести за пределы цикла).
Код:
|
for (i = 0; i < schedule.length; i++)
{
var arrTimes = schedule[i][0].match( /\d+/g );
if (hours >= arrTimes[0] &&
hours <= arrTimes[2] &&
minutes >= arrTimes[1] &&
minutes < arrTimes[3])
{alert(schedule[i][1]); break}
} |
Что касается, функции
forEach, если из неё точно не предусмотрен досрочный выход, то это печально (думается, что
forEach, как раз и реализована таким циклом).
А результат работы внутренней функции в
forEach можно вернуть через внешнюю переменную (я подумал может быть есть ещё какие-нибудь варианты).