Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 27.03.2012, 17:41
Аватар для مراد
Аспирант
Отправить личное сообщение для مراد Посмотреть профиль Найти все сообщения от مراد
 
Регистрация: 23.02.2012
Сообщений: 68

а как вывести текст вертикально?
Ответить с цитированием
  #12 (permalink)  
Старый 27.03.2012, 18:18
Аватар для مراد
Аспирант
Отправить личное сообщение для مراد Посмотреть профиль Найти все сообщения от مراد
 
Регистрация: 23.02.2012
Сообщений: 68

вертикальный текст
да нет нагерное
вот как на рисунке ВЕРТИКАЛЬНО
Безымянный.jpg

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

Ирония, Maxmaxmахimus, это, конечно, хорошо (хочешь, чтобы регулярные выражения представлялись не литерально, создай среду, в которой они будут представляться, например, схематически).

Но к чему лирика, если сам заварил эту кашу, приведя пример, по которому возникают вопросы.

Для эффективного применения предложенного тобой варианта решения, на мой взгляд, осталось разобраться с тем как досрочно выйти из функции forEach и с тем какие существуют варианты для возвращения значений из внутренней функции для этой forEach (вдобавок к предложенному мной), если знаешь, просвети.
Ответить с цитированием
  #14 (permalink)  
Старый 27.03.2012, 21:25
Аватар для مراد
Аспирант
Отправить личное сообщение для مراد Посмотреть профиль Найти все сообщения от مراد
 
Регистрация: 23.02.2012
Сообщений: 68

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

Maxmaxmахimus, давай решать задачи по порядку:
сначала доразберёмся с твоим примером,
потом, если владеешь информацией, можешь помочь мне в вопросе Размеры фреймов и JavaScript,
ну а потом можно будет поговорить, как я понял, о твоей любимой теме - регулярных выражениях (средство не спорю мощное).
Ответить с цитированием
  #16 (permalink)  
Старый 27.03.2012, 22:36
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от bes Посмотреть сообщение
Кроме того, следует понимать, что данный код не кроссбраузерный, так как функция forEach работает не во всех браузерах, в качестве альтернативы (со своими демонами) можно для обхода всех элементов массива использовать цикл for (например, вида for (var key in arr) {var val = arr[key]} ).
Обычно массив обходят по переменной, хранящей ссылку на число, с каждой итерацией которую проверяют, не больше ли она длины массива.
Ваш способ применяется в большинстве случаев для обхода объектов.

Сообщение от bes Посмотреть сообщение
Для эффективного применения предложенного тобой варианта решения, на мой взгляд, осталось разобраться с тем как досрочно выйти из функции forEach и с тем какие существуют варианты для возвращения значений из внутренней функции для этой forEach (вдобавок к предложенному мной), если знаешь, просвети.
forEach не предполагает ни возвращение значения, ни его прерывания. Метод предполагает "обойти массив, применив к каждому элементы оного функцию callback"

Последний раз редактировалось melky, 27.03.2012 в 22:40.
Ответить с цитированием
  #17 (permalink)  
Старый 27.03.2012, 22:49
Аватар для مراد
Аспирант
Отправить личное сообщение для مراد Посмотреть профиль Найти все сообщения от مراد
 
Регистрация: 23.02.2012
Сообщений: 68

Сообщение от مراد
ааа... что там на счет вертикального текста
люди!!!

можно ли переменной присвоить таблицу
Ответить с цитированием
  #18 (permalink)  
Старый 27.03.2012, 23:04
Server
Отправить личное сообщение для Rootpassword Посмотреть профиль Найти все сообщения от Rootpassword
 
Регистрация: 26.09.2011
Сообщений: 252

Сообщение от مراد
можно ли переменной присвоить таблицу
переменной можно присвоить ссылку на таблицу
Ответить с цитированием
  #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 можно вернуть через внешнюю переменную (я подумал может быть есть ещё какие-нибудь варианты).
Ответить с цитированием
  #20 (permalink)  
Старый 28.03.2012, 16:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

مراد,
Вариант...
var schedule = [
	[900, 'Пары еще не начались '],
	[945, 'Первый час, первой пары '],
	[950, 'Перемена 5 минут '],
	[1035, 'Второй час, первой пары '],
    [1045, 'Конец первой пары. Перемена на 10 минут '],
    [1130, 'Первый час, второй пары '],
    [1135, 'Перемена 5 минут  '],
    [1220, 'Второй час, второй пары '],
    [1240, 'Большая перемена '],
    [1325, 'Первый час, третьей пары '],
    [1330, 'Перемена 5 минут '],
    [1415, 'Второй час, третьей пары '],
    [2359, 'Наконец то закончились эти пары ']
];


alert( testSchedule() );
function testSchedule() {
	var nowTime = new Date(), hours = nowTime.getHours(), minutes = nowTime.getMinutes();
	var def = '';
     for (var i=0; i<schedule.length; i++)  {
       def = schedule[i][1];
       if((hours*100)+minutes < schedule[i][0]) break;
         }
	return def;
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условие сравнение юрл с которого перешли с заданным niksss80 Общие вопросы Javascript 4 06.01.2012 17:43
Как к найденому элементу применить условие? rommeq jQuery 4 29.08.2011 15:27
Не срабатывает условие AkeLLbl4 Events/DOM/Window 10 20.04.2011 21:13
Немогу поставить условие, запутался nemo Серверные языки и технологии 1 30.01.2010 14:18
Условие типа для flv nemo Серверные языки и технологии 1 29.01.2010 17:52