 
			
				23.04.2015, 12:18
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.06.2009 
					
					
					
						Сообщений: 120
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Как найти совпадения в массиве и добавить их в двумерный массив?
			 
			
		
		
		
		Здравствуйте. 
Ищу совпадения в массиве:
 
var arr = [0, 0, 4, 8, 8, 10, 45, 0, 23, 3 ,8];
var result = arr.filter(function (item, index, array) {    
  return array.indexOf(item) !== array.lastIndexOf(item); // [0, 0, 8, 8, 0, 8]
});
Вопрос: как сделать так, чтоб для отдельных совпадений, создавался свой массив? То есть, конечный результат должен быть такой:  [[0, 0, 0], [8, 8, 8]]
Спасибо за помощь и ваше время.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				23.04.2015, 13:01
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Armen,
    
<script>
var arr = [0, 0, 4, 8, 8, 10, 45, 0, 23, 3, 8],
       result = [],
       temp = {};
   arr.forEach(function(item, index, array) {
       temp[item] ? (temp[item].push(item)) : (temp[item] = [item]);
   });
   Object.keys(temp).forEach(function(key) {
       temp[key].length > 1 && result.push(temp[key])
   });
   document.write(JSON.stringify(result))
</script>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				23.04.2015, 13:08
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.06.2009 
					
					
					
						Сообщений: 120
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		Armen, 
    
<script>
var arr = [0, 0, 4, 8, 8, 10, 45, 0, 23, 3, 8],
       result = [],
       temp = {};
   arr.forEach(function(item, index, array) {
       temp[item] ? (temp[item].push(item)) : (temp[item] = [item]);
   });
   Object.keys(temp).forEach(function(key) {
       temp[key].length > 1 && result.push(temp[key])
   });
   document.write(JSON.stringify(result))
</script>
	 | 
 
	
 
 А есть вариант без создания объекта?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				23.04.2015, 13:14
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.06.2009 
					
					
					
						Сообщений: 120
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		Armen, 
    
<script>
var arr = [0, 0, 4, 8, 8, 10, 45, 0, 23, 3, 8],
       result = [],
       temp = {};
   arr.forEach(function(item, index, array) {
       temp[item] ? (temp[item].push(item)) : (temp[item] = [item]);
   });
   Object.keys(temp).forEach(function(key) {
       temp[key].length > 1 && result.push(temp[key])
   });
   document.write(JSON.stringify(result))
</script>
	 | 
 
	
 
 Уже не нужно! Спасибо, так подошло!  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				23.04.2015, 13:27
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Armen,
      
<script>
var arr = [0, 0, 4, 8, 8, 10, 45, 0, 23, 3, 8];
   var result = arr.filter(function(item, index, array) {
       return array.indexOf(item) !== array.lastIndexOf(item)
   }).sort(function(a, b) {
       return b - a
   }).reduce(function(arr, item) {
       arr[0] && arr[0][0] == item ? arr[0].push(item) : arr.unshift([item])
       return arr;
   }, []);
document.write(JSON.stringify(result))
</script>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |