Показать сообщение отдельно
  #19 (permalink)  
Старый 27.03.2012, 23:51
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Спасибо, 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 можно вернуть через внешнюю переменную (я подумал может быть есть ещё какие-нибудь варианты).
Ответить с цитированием