Ответ 1
Вам нужно создать функцию сравнения и передать ее как параметр функции сортировки:
values.sort((one, two) => (one > two ? -1 : 1));
Я пытаюсь сортировать string[]
по убыванию. Пока что я сделал код ниже:
let values = ["Saab", "Volvo", "BMW"]; // example
values.sort();
values.reverse();
Он работает, но я пытаюсь выяснить, есть ли лучший способ сделать это.
Вам нужно создать функцию сравнения и передать ее как параметр функции сортировки:
values.sort((one, two) => (one > two ? -1 : 1));
Более актуальный ответ: вы можете использовать String.prototype.localCompare(), чтобы получить числовое значение для сравнения
Простой пример:
let values = ["Saab", "Volvo", "BMW"];
values.sort((a, b) => b.localeCompare(a))
Это также не вызывает предупреждений TypeScript, так как выводом localCompare
является число
Больше информации и дополнительных параметров функции можно увидеть здесь https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare
Используйте следующий код для сортировки массива в порядке возрастания и убывания.
const ascending: any= values.sort((a,b) => (a > b ? 1 : -1));
const descending: any= values.sort((a,b) => (a > b ? -1 : 1))