 
			
				11.04.2014, 14:53
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.04.2014 
					
					
					
						Сообщений: 60
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Как сравнить массив с переменной в цикле?
			 
			
		
		
		
		Есть вот такой код, где нужно заменить вот это условие i==80 || i==64 || i==16 
for (i = 100; i >= 1; i--) {  
			if (i==80 || i==64 || i==16) {
				действие
			} else {
				другое действие
			}
		}
Я решил сделать массив с нужными числами, и сравнивать их с i, но не знаю как это сделать. 
Подскажите пожалуйста. 
Или может быть есть другой способ?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.04.2014, 15:01
			
			
			
		  
	 | 
 
	
		
		
		
			
			
			
				
				
				
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.07.2008 
					
					
					
						Сообщений: 3,873
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
var specialValues = [16, 64, 80];
for (i = 100; i >= 1; i--) {  
	if (specialValues.indexOf(i) != -1) {
		действие
	} else {
		другое действие
	}
}
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.04.2014, 15:02
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.02.2014 
					
					
					
						Сообщений: 27
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Зачем перебирать все значения массива если вам нужно 80, 64, 16, вот их и сравнивайте, это если вам нужно именно значения массива с определенными индексами, в вашем случае я так понимаю это 80 64 16, зачем гонять весь массив. 
Если у вас несколько значений а цикл в 100 итераций цикл не целесообразен!
 
for (i = 100; i >= 1; --i)
 
Так производительней.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось barkar, 11.04.2014 в 15:19.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.04.2014, 15:16
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.04.2014 
					
					
					
						Сообщений: 60
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Octane, 
Спасибо большое!) работает. 
Но теперь другой вопрос, как из json данных получить массив?  
Ответ приходит в таком виде "test": "16,64,80" 
Я думал, что вставлю вот так и оно сработает, но в итоге ничего не получилось:
 
...
		success: function(demo){    
		var specialValues = [demo.active];
...
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.04.2014, 15:16
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.04.2014 
					
					
					
						Сообщений: 60
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 barkar, 
Нет, не совсем это упрощенный пример, на деле таких цифр несколько сотен, которые я получаю через Ajax 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.04.2014, 15:17
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от light
			
		
	 | 
 
	| 
		заменить вот это условие i==80 || i==64 || i==16
	 | 
 
	
 
 Как вариант...
 
for (i = 100; i >= 1; i--) {  
	switch i {
		case 16: case 64: case 80:
			// действия
			break;
		default:
			// другие действия
	};
};
Или так
 
var o = {16: true, 64: true, 80: true];
for (i = 100; i >= 1; i--) {  
	if (o[i]) {
		//действие
	} else {
		//другое действие
	};
};
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.04.2014, 15:27
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.02.2014 
					
					
					
						Сообщений: 27
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Ответ приходит в таком виде "test": "16,64,80" 
А пишите  
var specialValues = [demo.active];
 
success: function(demo){
console.log(demo);
var specialValues = demo.test.split(',');
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.04.2014, 15:33
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 16.03.2010 
					
					
					
						Сообщений: 1,618
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Лучше через объект делать - быстрее. Объект сделать можно например так: 
var json = JSON.parse('{"test": "16,64,80"}');
var object = json.test.split(/\s*,\s*/).reduce(function (object, x) {
    object[x] = true;
    return object;
}, {});
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.04.2014, 15:39
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.04.2014 
					
					
					
						Сообщений: 60
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 barkar, 
Спасибо) Массив получился, только теперь код не срабатывает) 
Раньше он был вида  var specialValues = [16, 64, 80]; 
А теперь var specialValues = ["16", "64", "80"]; и соответственно ничего не выводит. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.04.2014, 15:40
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.04.2014 
					
					
					
						Сообщений: 60
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Sweet, 
Сложно как то) не знаю как к себе это пока применить, но ваш совет запомню, спасибо) 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |