Как отсортировать массив по первому символу элемента, а если он одинаковый, то по второму?

Как отсортировать массив:

текст, выделенный жирным шрифтом

Чтобы он превратился вот в такой:

введите сюда описание изображения

Логика последовательности заключается в том, что сортировка идет по первому символу (по убыванию), а если первые символы одинаковые, то по второму (в порядке алфавита)

Почти получилось реализовать через огромные конструкции и преобразования, но кажется, что нагородил лишнего, хотелось бы посмотреть какие способы, более-менее простые есть


Ответы (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']
→ Ссылка