 
			
				05.01.2013, 20:45
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.06.2012 
					
					
					
						Сообщений: 168
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Проверить, все ли элементы массива удовлетворяют условию одновременно
			 
			
		
		
		
		Подскажите, как проверить, все ли элементы массива удовлетворяют какому-либо условию одновременно. 
Что почитать?
 
Например, мне нужно узнать, все ли элементы числового массива  an = [a1,a2,a3,a4,a5] целые, и, если это так, то умножить их на 2, если же хоть один нецелый, то не изменять их. 
Как проверять на целость число, знаю:  number%1==0. 
 
Получилось проверять  только каждый элемент отдельно    
<script>
function transformSequence(a1,a2,a3,a4,a5)
{
    var an = [a1,a2,a3,a4,a5];
    for (var i=0; i<an.length; i++){ if (an[i]%1==0)  an[i] *= 2; }
    return an.join(', ');
}
</script>
<button onclick="alert(transformSequence(11,-2,3,-4,5))">Проверить 11, -2, 3, -4, 5</button><br>
<button onclick="alert(transformSequence(0.5,2,1,-7,8))">Проверить 0.5, 2, 1, 7, 8</button>
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Demath, 01.01.2014 в 22:25.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.01.2013, 21:04
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				    ☽ 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.01.2011 
					
					
					
						Сообщений: 254
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		В ECMAScript 5 добавлены соответствующие методы массивов — .every() и .map(): 
var arr = [11,-2,3,-4,5],
    allInt = arr.every(function (elem) {
        return elem % 1 == 0;
    });
if (allInt) {
    arr = arr.map(function (elem) { return elem * 2; });
}
alert(arr);
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.01.2013, 21:24
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 без статуса 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2012 
					
					
					
						Сообщений: 8,219
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
<script>
function trsfrmSqnce(a) {return a.join('').search(/,|\./)==-1;}
</script>
<button onclick="alert(trsfrmSqnce([11,-2,3,-4,5]))">Проверить 11, -2, 3, -4, 5</button><br>
<button onclick="alert(trsfrmSqnce([0.5,2,1,-7,8]))">Проверить 0.5, 2, 1, 7, 8</button>
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Deff, 05.01.2013 в 21:26.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.01.2013, 21:30
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				    ☽ 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.01.2011 
					
					
					
						Сообщений: 254
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Deff, 
1e-1
  
А, не, черт. .join() преобразует в десятичную нотацию 
1e-18  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Amphiluke, 05.01.2013 в 21:32.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.01.2013, 21:44
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 без статуса 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2012 
					
					
					
						Сообщений: 8,219
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Amphiluke
			
		
	 | 
 
	| 
		1e-1
	 | 
 
	
 
 
<script>
function trsfrmSqnce(a) {return a.join('').search(/,|e-|\./)==-1;}
</script>
<button onclick="alert(trsfrmSqnce([11,-2,3,-4,5]))">Проверить 11, -2, 3, -4, 5</button><br>
<button onclick="alert(trsfrmSqnce([0.5,2,1,-7,8]))">Проверить 0.5, 2, 1, 7, 8</button>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.01.2013, 21:47
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				    ☽ 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.01.2011 
					
					
					
						Сообщений: 254
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Deff, тогда уж с флагом i для полноты счастья.   
Хотя необязательно, наверное. join все равно переведет в нижний регистр.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Amphiluke, 05.01.2013 в 21:50.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.01.2013, 21:54
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 без статуса 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2012 
					
					
					
						Сообщений: 8,219
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Amphiluke, 
 Да тут не соль - функция ток проверяет при зараннее заданном условии что все цифры, так шо чисто повыпендривацо 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.01.2013, 00:21
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.06.2012 
					
					
					
						Сообщений: 168
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Всем спасибо. Всё пригодилось    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.01.2013, 14:08
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.06.2012 
					
					
					
						Сообщений: 168
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Amphiluke
			 
		
	 | 
 
	
		В ECMAScript 5 добавлены соответствующие методы массивов — .every() и .map(): 
var arr = [11,-2,3,-4,5],
    allInt = arr.every(function (elem) {
        return elem % 1 == 0;
    });
if (allInt) {
    arr = arr.map(function (elem) { return elem * 2; });
}
alert(arr);
	 | 
 
	
 
 Amphiluke, а возможно ли добавить поддержку IE>=8?
 
А то IE8 пишет, что объект не поддерживает это свойство или метод    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.01.2013, 14:33
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				    ☽ 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.01.2011 
					
					
					
						Сообщений: 254
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |