| 
	| 
	
	| 
		
	| 
			
			 
			
				24.05.2013, 16:47
			
			
			
		 |  
	| 
		
			|  | Интересующийся       |  | 
					Регистрация: 01.05.2013 
						Сообщений: 21
					 
		
 |  |  
	| 
				Удалить и вернуть массив из удаленных элементов splice
			 Тут такой вопрос. Мне нужно удалить повторяющиеся элементы из массива и вывести массив из удаленных элементов в браузер. Получается что-то одно. Параллельно не получается. 
Тут функция возвращает удаленные элементы
 
function Dublicates(array) {
            var dubl = [];
            for (var i = 0; i < array.length; i++) {
                for (var j = i + 1;  j < array.length; j++) {
                    if (array[i][0] == array[j][0]) { // search for the same account numbers
                        dubl = array.splice(j, 1); //массив из удаленных элементов
                      
                    };                   
                };
            };
          
            return dubl; // возвращает массив из удаленных элементов
           
        }
А если пишу так то удаляет элементы из массива
 
function Dublicates(array) {
            var dubl = [];
      
            for (var i = 0; i < array.length; i++) {
                for (var j = i + 1;  j < array.length; j++) {
                    if (array[i][0] == array[j][0]) { // search for the same account numbers
                        array.splice(j, 1); //удаляет 
                    };                   
                };
            };
            return array; // удаляет
        }
Никак понять не могу как лучше сделать эти два действия в функции. Подскажите пожалуйста  |  |  
	| 
		
	| 
			
			 
			
				25.05.2013, 17:13
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 22.06.2012 
						Сообщений: 168
					 
		
 |  |  
	| А что нужно получить в результате: массив без дублей или массив, состоящий из дублей исходного? |  |  
	| 
		
	| 
			
			 
			
				25.05.2013, 18:06
			
			
			
		 |  
	| 
		
			|  | Интересующийся       |  | 
					Регистрация: 01.05.2013 
						Сообщений: 21
					 
		
 |  |  
	| Demath,
 Есть массив аrray. Надо найти в колонке (array[i][0]) одинаковые элементы(дубли).  Если таковы есть, их надо удалить из массива array(т.е. получить массив без дублей)
 
 И список удаленных вывести в браузер.
 т.е. Надо получить массив состоящий из дублей исходного.
 |  |  
	| 
		
	| 
			
			 
			
				25.05.2013, 18:08
			
			
			
		 |  
	| 
		
			|  | Интересующийся       |  | 
					Регистрация: 01.05.2013 
						Сообщений: 21
					 
		
 |  |  
	| Много вариантов было.Один из них.. функция удаляет из исходного массива дубли. Вторая соответственно уже не может найти дубли.. Т.е. непонятно как его сделать..
 |  |  
	| 
		
	| 
			
			 
			
				25.05.2013, 21:55
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 22.06.2012 
						Сообщений: 168
					 
		
 |  |  
	| 
	
 
	| Сообщение от Paulyyy |  
	| Есть массив аrray. Надо найти в колонке (array[i][0]) одинаковые элементы(дубли). Если таковы есть, их надо удалить из массива array(т.е. получить массив без дублей) |  
	
 1. Что именно удалить: только сам повторяющийся элемент array[i][0]  или всю строку, его содержащую?
 
2. Могут ли повторяющиеся элементы встречаться более одного раза?
 
3. В случае, например, array = [[15,2,-5],[1,2,4],[15,0,1],[15,11,5]] , что должна вернуть функция? |  |  
	| 
		
	| 
			
			 
			
				26.05.2013, 02:44
			
			
			
		 |  
	| 
		
			|  | Интересующийся       |  | 
					Регистрация: 01.05.2013 
						Сообщений: 21
					 
		
 |  |  
	| 
	
 
	| Сообщение от Demath   |  
	| 1. Что именно удалить: только сам повторяющийся элемент array[i][0] или всю строку, его содержащую? 
 2. Могут ли повторяющиеся элементы встречаться более одного раза?
 
 3. В случае, например, array = [[15,2,-5],[1,2,4],[15,0,1],[15,11,5]], что должна вернуть функция?
 |  
	
 Удалить надо всю строку.
 
Более одного раза - нет.
 
Ну а по поводу третьего вопроса то вернет в консоле то что прикрепленном файле |  |  
	| 
		
	| 
			
			 
			
				26.05.2013, 13:08
			
			
			
		 |  
	| 
		
			|  | Тлен       |  | 
					Регистрация: 02.01.2010 
						Сообщений: 6,601
					 
		
 |  |  
	| В первам случае он также удаляет элементы из массива как и во втором, функция возвращает массив удалённых элементов, при этом изначальный array изменяется. 
				__________________ 29375, 35
 |  |  
	| 
		
	| 
			
			 
			
				26.05.2013, 15:44
			
			
			
		 |  
	| 
		
			|  | Интересующийся       |  | 
					Регистрация: 01.05.2013 
						Сообщений: 21
					 
		
 |  |  
	| array не меняется в первом случае.. |  |  
	| 
		
	| 
			
			 
			
				26.05.2013, 15:52
			
			
			
		 |  
	| 
		
			|  | Тлен       |  | 
					Регистрация: 02.01.2010 
						Сообщений: 6,601
					 
		
 |  |  
	| А я говорю - меняется: 
array = [[15,2,-5],[1,2,4],[15,0,1],[15,11,5]]
function Dublicates(array) {
            var dubl = [];
 
            for (var i = 0; i < array.length; i++) {
                for (var j = i + 1;  j < array.length; j++) {
                    if (array[i][0] == array[j][0]) { // search for the same account numbers
 
                        dubl = array.splice(j, 1); //массив из удаленных элементов
                       
                    };                  
                };
            };
           
            return dubl; // возвращает массив из удаленных элементов
            
}
alert(array)
alert( Dublicates(array) )
alert(array)
Читаем про то, как работает splice .
				__________________ 29375, 35
 |  |  
	| 
		
	| 
			
			 
			
				26.05.2013, 17:33
			
			
			
		 |  
	| 
		
			|  | Интересующийся       |  | 
					Регистрация: 01.05.2013 
						Сообщений: 21
					 
		
 |  |  
	| Просто когда я вызываю эту функцию для array то она конечно удаляет. Но когда я хочу вывести удаленные в браузер то вот тут не получается.. |  |  
 
 
 
 |  |