@TuMko

Как отсортировать массив пар [ключ, значение]?

Методом Object.entries из исходного объекта был получен массив пар [ключ, значение].
Массив выглядит таким образом:
[
  ['51-55', 4],
  ['26-30', 4],
  ['до 20', 1],
  ['36-40', 9],
  ['41-45', 10],
  ['20-25', 1],
  ['31-35', 4],
  ['за 60', 3],
  ['46-50', 8],
  ['56-60', 6]
]


Необходимо отсортировать по первому значению, только на первом месте должен быть ['до 20', 1], далее по порядку ['20-25', 1], ['26-30', 4], ... и на последнем месте ['за 60', 3].
Мой код ниже сортирует в алфавитном порядке, и значения ['до 20', 1] и ['за 60', 3] соответственно оказываются в самом конце массива. Как эти два элемента отсортировать вместе с остальными в одной функции?

let sortableArr = Object.entries(agesResult);
      sortableArr.sort((a, b) => {
        if (a[0] > b[0]) {
          return 1;
        } else if (a[0] < b[0]) {
          return -1;
        } else {
          return 0;
        }
      });
  • Вопрос задан
  • 353 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const sortedArr = arr
  .map(n => [ n, n[0].replace(/\D+/, '') ])
  .sort((a, b) => a[1].localeCompare(b[1]))
  .map(n => n[0]);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы