Сортировка карты по значению, где карта - это массив в JavaScript - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь отсортировать карту по значению, где значения являются массивами.

Например, карта ниже:

{'let1': ['art', 'can'], 'let2': ['own', 'kit', 'dig'], 'let3': ['art', 'zero']}

Я хотел бы отсортировать ее как:

{'let1': ['art', 'can'], 'let3': ['art', 'zero'], 'let2': ['own', 'kit', 'dig']}

Возможно ли использование метода JavaScript sort()?

1 Ответ

3 голосов
/ 03 августа 2020

Сортировка объекта не рекомендуется. Его следует рассматривать как поиск. Вы должны преобразовать пары ключ-значение в кортежи записей и отсортировать значение по индексу 1 (также известному как массив значений).

См .: Сортировка свойства объекта по значениям

let obj = {
  'let1': ['art', 'can'],
  'let2': ['own', 'kit', 'dig'],
  'let3': ['art', 'zero']
};

console.log(Object.entries(obj).sort((a, b) =>
  a[1].join(',').localeCompare(b[1].join(','))));
.as-console-wrapper { top: 0; max-height: 100% !important; }

Результат

[
  [ "let1", [ "art", "can"        ] ],
  [ "let3", [ "art", "zero"       ] ],
  [ "let2", [ "own", "kit", "dig" ] ]
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...