Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.11.2014, 15:28
Профессор
Отправить личное сообщение для imedia Посмотреть профиль Найти все сообщения от imedia
 
Регистрация: 20.05.2014
Сообщений: 292

как написать условие?
как написать условие?
если значение любого из селектов > 0
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2014, 16:10
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

ES5 пример:
<select>
<option value=0>Value 0</option>
<option value=1>Value 1</option>
</select>

<select>
<option value=0>Value 0</option>
<option value=1>Value 1</option>
</select>

<button>Проверить</button>

<script>
Array.some || (Array.some = Function.prototype.call.bind(Array.prototype.some));

var selects = document.querySelectorAll('select');

function check() {
	var someIsPositive = Array.some(selects, function(select) {
		return select.value > 0;
	});

	if (someIsPositive) {
		alert('Есть положительные');
	} else {
		alert('Все нулевые');
	}
}


document.querySelector('button').onclick = check;
</script>
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2014, 16:12
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

test=function(arr){
try{arr.forEach(function(el){if(el<1) throw false})}catch(e){return e}
return true
}
alert(test([1,2,3,4,5]))
alert(test([1,2,0,4,5]))
//  true
//  false
Ответить с цитированием
  #4 (permalink)  
Старый 22.11.2014, 16:19
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

krutoy, предлагаю тебе мигрировать на другой портал: http://govnokod.ru/
Тебе там будет комфортно
Но подход, да, интересный. В нескольких случаях его использовал.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 22.11.2014, 16:58
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

<!DOCTYPE HTML>
<html>
  <head><meta charset="windows-1251" /> </head>
  <body>

<select>
<option value=0>Value 0</option>
<option value=1>Value 1</option>
</select>
 
<select>
<option value=0>Value 0</option>
<option value=1>Value 1</option>
</select>
 
<button>Проверить</button>
 
<script>

test=function(){
  var sels = document.getElementsByTagName('select'), arr=[]
  for(var i=0; i<sels.length; i++) arr.push(sels[i].value)
  try{arr.forEach(function(el){if(el<1) throw false})}catch(e){return e}
  return true
}
document.querySelector('button').onclick = function(){alert(test())};

</script>
    </script>
  </body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 22.11.2014, 17:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от krutoy
windows-1251
а почему?
Ответить с цитированием
  #7 (permalink)  
Старый 22.11.2014, 17:24
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

рони,
А почему нет? Вообще, я где то слышал, что windows-1251 быстрей.
Ответить с цитированием
  #8 (permalink)  
Старый 22.11.2014, 17:24
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Но подход, да, интересный. В нескольких случаях его использовал.
Зачем?
var someIsPositive = false;
for (var i = 0; i < selects.length; i++) {
  if (+[i].value > 0)
    someIsPositive = true;
}
Ответить с цитированием
  #9 (permalink)  
Старый 22.11.2014, 17:28
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Erolast,
forEach - более высокоуровневая конструкция, с ней проще, уровень абстракции другой, проще комбинировать.

Последний раз редактировалось krutoy, 22.11.2014 в 17:30.
Ответить с цитированием
  #10 (permalink)  
Старый 22.11.2014, 17:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Erolast
Зачем?
Как зачем? Чтобы прервать выполнение кода и передать управление обратно. При этом глубина цепочки вызовов может быть больше одного вызова )

Я то не про forEach говорю. А krutoy, просто не в курсе про some() вот и пишет, как обычно, говнокод )
А может намеренно это делает. Хотя нет, не буду его переоценивать )
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как написать скрипт для Photoshop? Svede Ваши сайты и скрипты 1 20.11.2014 16:31
Как мне написать свою тему так что бы вы прочитали и помогли ?? Андрей Лебедев Элементы интерфейса 2 09.02.2013 17:49
Как написать алгоритм выборки в javascript? Isaac Общие вопросы Javascript 13 06.02.2013 11:15
Как написать регулярное выражение для поиска до конца строки isqad88 Общие вопросы Javascript 3 11.02.2012 15:34
Как написать такой скрипт? nemo Серверные языки и технологии 11 28.02.2010 23:19