@mamaanarhiya

Как так сортировать данные в массиве?

Есть массив с допустим такими данными:
[{value: 123, key: 15},{value: 321, key: 18},{value: 1232312, key: 17},{value: 5678, key: 24}]


Нужно отсортировать его по элементам key, но не просто по большему или меньшему, а конкретно нужно, чтобы первым шёл с key = 15, далее с key = 24, далее с key = 17 и последним с key = 18. Не обязательно, что все объекты в массиве присутствуют, то есть там может быть и такой массив [{value: 1232312, key: 17}, {value: 123, key: 15}].
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
@Interface
Создаете массив или объект который "маппит" key к его порядку в очереди. И используете мапу в методе sort массива:

const keySortPriorities = [15, 24, 17, 18];

[{value: 1232312, key: 17}, {value: 123, key: 15}]
  .sort((a, b) => keySortPriorities.indexOf(a.key) - keySortPriorities.indexOf(b.key));

[{value: 123, key: 15},{value: 321, key: 18},{value: 1232312, key: 17},{value: 5678, key: 24}]
  .sort((a, b) => keySortPriorities.indexOf(a.key) - keySortPriorities.indexOf(b.key))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы