вопрос по методу 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, время: 19:10. |