вопрос по методу sort
Скажите пожалуйста, можно ли как нибудь в функцию которую вызывает метод sort передать доп.аргументы? Например есть двумерный массив 10х10, мне нужну иметь сортировку по каждой колонке, неужели придется для каждой прописывать свою функцию?
function (a, b) { return a[n] - b[n]; }; Как можно передать в функцию аргумент n? |
Двумерный массив 10х10 - это обычный массив из 10 обычных массивов из 10 элементов. Переворачиваем массив (строки в колонки) - сортируем - переворачиваем обратно. Профит.
|
может попробовать сортировать в цикле
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; } |
Цитата:
|
Цитата:
|
тогда никак, compare ф-ия от двух аргументов..
|
Цитата:
function compare (a, b) { return a[compare.idColumn] - b[compare.idColumn]; }; compare.idColumn = 5; // сортируем по 5-му столбцу array.sort(compare); кто предложит решение по лучше? |
function getComparator ( n ) { return function ( a, b ) { return a[ n ] - b[ n ] } } arr.sort( getComparator( 1 ) ) |
Цитата:
|
Часовой пояс GMT +3, время: 10:30. |