 
			
				18.02.2014, 09:39
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 17.02.2014 
					
					
					
						Сообщений: 10
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Удаление элемента массива без сдвига индексов
			 
			
		
		
		
		Здравствуйте. Имеется массив со строками. 
Содержит, допустим, 50 элементов. 
 
Требуется, чтобы при удалении 25ого элемента он полностью отсутствовал, т.е. в массиве были 1...22,23,24,26,27....50 и не было 25. 
 
Как это сделать? splice не так работает. 
 
Следует ли для этого использовать объект с ключами в виде цифр? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.02.2014, 09:57
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 15.05.2013 
					
					
					
						Сообщений: 2
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Привет, 
Почему splice не так работает?
 
var arr = [1,2,3,4,5,6,7,8,9];
arr.splice(5,1);
console.log(arr); // [1,2,3,4,5,7,8,9] - 6 исчезла.
  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.02.2014, 09:57
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
delete array[25];
 
Удалит ключ и значение.  
		
	
		
		
		
		
		
			
				__________________ 
				В личку только с интересными предложениями   
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.02.2014, 10:18
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 17.02.2014 
					
					
					
						Сообщений: 10
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 @danik.js, аа!! спасибо большое! то что нужно!! карму пока не могу поднять) кого-то другого нужно плюсануть, чтоб мог опять тебя)) 
 
@mishgun131, потому что по arr[5] будет существовать элемент, хотя его значение и будет 7 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.02.2014, 11:50
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		  вариант  - просто как демострация возможности удаления
 
var arr = [1,2,3,4,5,6,7,8,9]; 
   delete arr[0];
   alert(arr[0])
   alert([arr.length, Object.keys(arr)]);
   var arr = [1,2,3,4,5,6,7,8,9];
   function del(arr, indx)
   {  var ghost = Array();
      for (var i=0; i<arr.length; i++)  {i != indx && (ghost[i]=arr[i])};
      return ghost;
   }
   arr = del(arr, 0)
   alert(arr[0])
   alert([arr.length, Object.keys(arr)]);
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.03.2015, 16:48
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 08.03.2011 
					
					
					
						Сообщений: 148
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от danik.js
			
		
	 | 
 
	
		delete array[25]; 
 
 
Удалит ключ и значение.
	 | 
 
	
 
 Удалит только значение, а ключ останется. Эта же проблема возникла, splice сдвигает индексы при удалении, а delete удаляет только значение элемента, но не его индекс, то есть при delete myVar[1], переменная myVar[1] будет по-прежнему существовать, просто значение будет undefined. Как удалить и индекс и значение без сдвига индексов, простым способом?..  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.03.2015, 17:50
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 08.03.2011 
					
					
					
						Сообщений: 148
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Хотя сори, delete и вправду удаляет элемент вместе с индексом, видимо, у меня баг какой-то в коде был просто 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |