| 
	| 
	
	| 
		
	| 
			
			 
			
				11.04.2013, 22:49
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 23.09.2010 
						Сообщений: 247
					 
		
 |  |  
	| 
				вопрос по методу sort
			 Скажите пожалуйста, можно ли как нибудь в функцию которую вызывает метод sort передать доп.аргументы? Например есть двумерный массив 10х10, мне нужну иметь сортировку по каждой колонке, неужели придется для каждой прописывать свою функцию? 
function (a, b) {
    return a[n] - b[n];
};
Как можно передать в функцию аргумент n?
				__________________На начальном этапе события могут казаться случайными, но постепенно проявляется связь, и в конце концов все части целого складываются
 			 Последний раз редактировалось simple, 11.04.2013 в 22:54.
 |  |  
	| 
		
	| 
			
			 
			
				11.04.2013, 23:14
			
			
			
		 |  
	| 
		
			|  | Интересующийся       |  | 
					Регистрация: 05.03.2013 
						Сообщений: 20
					 
		
 |  |  
	| Двумерный массив 10х10 - это обычный массив из 10 обычных массивов из 10 элементов. Переворачиваем массив (строки в колонки) - сортируем - переворачиваем обратно. Профит. |  |  
	| 
		
	| 
			
			 
			
				11.04.2013, 23:15
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 30.01.2013 
						Сообщений: 29
					 
		
 |  |  
	| может попробовать сортировать в цикле 
var arr = [
      [7, 6, 5],
      [17, 16, 15],
   ];
   
   var arrSorted = [];
   for ( var i=0; i<arr.length; i++ ) {
      arrSorted.push( arr[i].sort( compNums ) );
   }
   console.log( arrSorted );
   function compNums( a, b ) {
      return a - b;
   }
 |  |  
	| 
		
	| 
			
			 
			
				11.04.2013, 23:23
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 23.09.2010 
						Сообщений: 247
					 
		
 |  |  
	| 
	
 
	| Сообщение от dastingo   |  
	| может попробовать сортировать в цикле |  
	
 Нет, в цикле не пойдет, тем более мне нужна сортировка по столбцу, а не по строке.
				__________________На начальном этапе события могут казаться случайными, но постепенно проявляется связь, и в конце концов все части целого складываются
 |  |  
	| 
		
	| 
			
			 
			
				11.04.2013, 23:27
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 23.09.2010 
						Сообщений: 247
					 
		
 |  |  
	| 
	
 
	| Сообщение от Akalenik   |  
	| Двумерный массив 10х10 - это обычный массив из 10 обычных массивов из 10 элементов. Переворачиваем массив (строки в колонки) - сортируем - переворачиваем обратно. Профит. |  
	
 Спасибо, велосипеды я писать умею, мне хотелось узнать можно ли передать как нибудь доп.аргумент в функцию, но похоже никак.
				__________________На начальном этапе события могут казаться случайными, но постепенно проявляется связь, и в конце концов все части целого складываются
 |  |  
	| 
		
	| 
			
			 
			
				11.04.2013, 23:33
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 30.01.2013 
						Сообщений: 29
					 
		
 |  |  
	| тогда никак, compare ф-ия от двух аргументов.. |  |  
	| 
		
	| 
			
			 
			
				12.04.2013, 00:16
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 23.09.2010 
						Сообщений: 247
					 
		
 |  |  
	| 
	
 
	| Сообщение от dastingo   |  
	| тогда никак, compare ф-ия от двух аргументов.. |  
	
 Почему никак? Можно извернуться через свойства объекта, например так.
 
function compare (a, b) {
   return a[compare.idColumn] - b[compare.idColumn];
};
compare.idColumn = 5; // сортируем по 5-му столбцу
array.sort(compare);
кто предложит решение по лучше?
				__________________На начальном этапе события могут казаться случайными, но постепенно проявляется связь, и в конце концов все части целого складываются
 |  |  
	| 
		
	| 
			
			 
			
				12.04.2013, 00:20
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 01.02.2010 
						Сообщений: 364
					 
		
 |  |  
	| 
function getComparator ( n ) { 
  return function ( a, b ) {
    return a[ n ] - b[ n ]
  }
}
arr.sort( getComparator( 1 ) )
 |  |  
	| 
		
	| 
			
			 
			
				12.04.2013, 00:25
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 23.09.2010 
						Сообщений: 247
					 
		
 |  |  
	| 
	
 
	| Сообщение от nikita.mmf   |  
	| 
function getComparator ( n ) { 
  return function ( a, b ) {
    return a[ n ] - b[ n ]
  }
}
arr.sort( getComparator( 1 ) )
 |  
	
 красиво, мне нравится, возьму на вооружение.
				__________________На начальном этапе события могут казаться случайными, но постепенно проявляется связь, и в конце концов все части целого складываются
 			 Последний раз редактировалось simple, 12.04.2013 в 00:31.
 |  |  
 
 
 
 |  |