Есть функция sort(fn). Как не проверяя результат, узнать в какую сторону сортируется массив (увеличение или уменьшение)?
let d = [1, 2, 4, 5, 7, 15, 10, 3, 0,]
console.log( d.sort( (a, b) => {
if(a > b){
return 1 // предполагаю в сторону увеличения
}
} ) );
let d = [1, 2, 4, 5, 7, 15, 10, 3, 0,]
console.log( d.sort( (a, b) => {
if(a < b){
return -1 // предполагаю в сторону уменьшения
}
} ) );
Обновил ответ
При сортировке, ф-я sort() определяет позицию индекса для элементов с помощью вызова функции сравнения, переданного ей в качестве агрумента, которая принимает два параметра a и b.
Если вызванная ф-я сравнения, для переданных аргументов, возвращает значения:
больше 0 - значит индекс элемента, в отсортированном массиве, для аргумента a будет больше чем у bменьше 0 - значит индекс элемента, в отсортированном массиве, для аргумента a будет меньше чем у b0 - аргументы равны и в текущей итерации изменение значения индекса производится не будет. Отсортировать по возрастанию:
let d = [1, 2, 4, 5, 7, 15, 10, 3, 0,]
console.log( d.sort( (a, b) => {
return a - b;
} ) );
Результат: [0, 1, 2, 3, 4, 5, 7, 10, 15]
Отсортировать по убыванию:
let d = [1, 2, 4, 5, 7, 15, 10, 3, 0,]
console.log( d.sort( (a, b) => {
return b - a;
} ) );
Результат: [15, 10, 7, 5, 4, 3, 2, 1, 0]
Для таких простых сортировок по одному вызову ф-и, можно определить порядок сортировки:
if (fn(1, 2) > 0) {
console.log("По возвраствнию");
} else {
console.log("По убыванию");
}
Но алгоритм для сортировки может быть непростыми, например такой - в отсортированном массиве вначале идут четные значения по-возрастанию, а после - нечетные по-убыванию:
let d = [1, 2, 4, 5, 7, 15, 10, 3, 0,]
console.log( d.sort( (a, b) => {
if (a === b ) {
return 0;
} else if (a % 2 === 0) {
if (b % 2 === 0) {
return a - b
} else {
return -1
}
} else {
if (b % 2 !== 0) {
return b - a ;
} else {
return 1
}
}
} ) );
Результат: [0, 2, 4, 10, 15, 7, 5, 3, 1]
Для последней сортировки, не зная точно алгоритма сортировки, врядли у вас получится по одному вызову определить направление ;)
Продвижение своими сайтами как стратегия роста и независимости