Как отсортировать массив по первому символу элемента, а если он одинаковый, то по второму?
Как отсортировать массив:
Чтобы он превратился вот в такой:
Логика последовательности заключается в том, что сортировка идет по первому символу (по убыванию), а если первые символы одинаковые, то по второму (в порядке алфавита)
Почти получилось реализовать через огромные конструкции и преобразования, но кажется, что нагородил лишнего, хотелось бы посмотреть какие способы, более-менее простые есть
Ответы (1 шт):
Автор решения: Михаил В
→ Ссылка
Ограничение - входной массив содержит только строки, в которых первый символ - цифра, второй - латинская буква:
const input = ['4t','2o','2f','2e','2a'];
input.sort((a,b) => {
if(a[0] > b[0]) return -1;
if(a[0] < b[0]) return 1;
// Тут остается вариант когда a[0] === b[0], дальше сравниванием уже второй символ
return b[1] < a[1] ? 1 : -1;
});
console.log(input); // ['4t', '2a', '2e', '2f', '2o']

