| 
	| 
	
	| 
		
	| 
			
			 
			
				27.09.2013, 14:03
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 25.09.2013 
						Сообщений: 44
					 
		
 |  |  
	| 
				массив.splice
			 подскажите, как вставить в массив элемент? hfdysq 0 			 Последний раз редактировалось Anna77, 13.10.2013 в 00:08.
 |  |  
	| 
		
	| 
			
			 
			
				27.09.2013, 15:01
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 08.07.2013 
						Сообщений: 212
					 
		
 |  |  
	| 1. Отформатируй код: есть тэг JS 
2. Объекты передаются по ссылке а не по значению. То есть если ты напишешь Arr2 = Arr1 а потом изменишь Arr2 то Arr1 у тебя тоже поменяется.
http://learn.javascript.ru/object 
3. Если научишься пользоваться отладчиком, то твои вопросы станут куда более конкретны
http://learn.javascript.ru/debugging-chrome 
Если ты это писала сама, тебе хватит) Впрочем я в этом сомневаюсь сильно)			 Последний раз редактировалось Makarov, 27.09.2013 в 16:04.
 |  |  
	| 
		
	| 
			
			 
			
				27.09.2013, 15:47
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 25.09.2013 
						Сообщений: 44
					 
		
 |  |  
	| спасибо за советы, пыталась писать сама, на определенном этапе не понимаю как сделать проверку if на отрицательные элементы массива |  |  
	| 
		
	| 
			
			 
			
				27.09.2013, 16:00
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 08.07.2013 
						Сообщений: 212
					 
		
 |  |  
	| Да так и делать, только я бы на всякий случай к одному типу привел во избежание. Пройдись отладчиком просто, посмотри где оно ведет себя не так как ты планируешь, а потом думай почему
 			 Последний раз редактировалось Makarov, 27.09.2013 в 16:05.
 |  |  
	| 
		
	| 
			
			 
			
				27.09.2013, 16:33
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 25.09.2013 
						Сообщений: 44
					 
		
 |  |  
	| отладчик просто зависает в определенном местевы имеете ввиду
 if (Arr2[i] <== 0)
 {
 Arr2.splice(i<=0, 0, 0);
 }
 |  |  
	| 
		
	| 
			
			 
			
				27.09.2013, 16:48
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 08.07.2013 
						Сообщений: 212
					 
		
 |  |  
	| 1. Почитай про splice. Ты какую-то фигню пытаешься сделатьhttp://javascript.ru/array/splice 
2. А нужен ли тебе splice если исходный и результирующий массив могут быть разными? 
3. Отладчик останавливается там где ты ему говоришь. Там где остановился можно посмотреть значения переменных чтобы понять что пошло не так, а потом двигать дальше |  |  
	| 
		
	| 
			
			 
			
				27.09.2013, 17:00
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 22.06.2012 
						Сообщений: 168
					 
		
 |  |  
	| 
	
 
	| Сообщение от Anna77 |  
	| подскажите, как вставить в массив после каждого его отрицательного элемента элемент, равный нулю |  
	
 Например, так
 
function Array1(A)
{
    var n = A.length;
    
    for (var i = 0; i < n; i++)
     { if (A[i] < 0)
        { for (var j = n-1; j >= i; j--) A[j+1] = A[j];
          A[i+1] = 0;
          i++; n++;
        }
     }
    return A;
}
alert( Array1([-1,1,2,-6,7,1,6,-7]) );
 |  |  
	| 
		
	| 
			
			 
			
				27.09.2013, 18:36
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 25.09.2013 
						Сообщений: 44
					 
		
 |  |  
	| Спасибо большое! |  |  
	| 
		
	| 
			
			 
			
				27.09.2013, 20:11
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 22.06.2012 
						Сообщений: 168
					 
		
 |  |  
	| 
	
 
	| Сообщение от Demath   |  
	| 
Например, так
	
 
	| Сообщение от Anna77 |  
	| подскажите, как вставить в массив после каждого его отрицательного элемента элемент, равный нулю |  
	
 
 
 
function Array1(A)
{   var n = A.length;    
    for (var i = 0; i < n; i++)
     { if (A[i] < 0)
        { for (var j = n-1; j >= i; j--) A[j+1] = A[j];
          A[i+1] = 0;
          i++; n++;
        }
     }
    return A;
}
alert( Array1([-1,1,2,-6,7,1,6,-7]) );
 |  
	
 Эта функция не сохраняет входной массив. Если же нужно, чтобы входной массив не изменялся, то так (даже лучше, т.к. без вложенного цикла, сложность алгоритма O(n) )
 
function Array2(A)
{
    var n = A.length, B = [];
    
    for (var i = 0, j = 0; i < n; i++)
     { if (A[i] < 0)
        { B[j++] = A[i]; B[j++] = 0; }
       else B[j++] = A[i];
     }
    
    return B;
}
alert( Array2([-1,1,2,-6,7,1,6,-7]) );
 |  |  
	| 
		
	| 
			
			 
			
				27.09.2013, 20:23
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 22.06.2012 
						Сообщений: 168
					 
		
 |  |  
	| 
	
 
	| Сообщение от Anna77 |  
	| Если не сложно, подскажите, пожалуйста, как написать программу, определяющую, является ли массив симметричным, т. е. совпадает ли его первый элемент с последним, второй с предпоследним и т. д. |  
	
 Например, так
 
function isSymmArray(A)
{
    var n = A.length, k = Math.floor(n/2);
    
    for (var i = 0; i < k; i++)
     { if (A[i] !== A[n-1-i]) return false; }
    
    return true;
}
 |  |  |  |