Задать вопрос
@Mishcake

Как отсортировать массив с вложенными объектами?

Здравствуйте.

Есть объект:
let userArch = {
    Воин: {
      count: 0,
      description:
        'Описание...',
    },
    Монарх: {
      count: 0,
      description:
        'Описание...',
    }


В одном участке кода я увеличиваю count:
switch (userAnswer) {
      case 'a':
        userArch.Воин.count += 1;
        break;
      case 'b':
        userArch.Монарх.count += 1;
        break;
      default:
        break;


И в конце я хочу отсортировать этот объект по вложенным значениям count.

Раньше обьект выглядел по другому:
let userArch = {
    Воин: 0,
    Монарх: 0,
  }


И эту задачу решал код:
let array = Object.entries(userArch);
  let sortedArray = array.sort((b, a) => a[1] - b[1]);


Но сейчас с вложенными свойствами это не работает. Кручу-верчу, никак не могу подбраться к сортировке вложенных свойств. Как отсортировать вложенные свойства? Подскажите, пожалуйста.
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 2
@Mishcake Автор вопроса
Простите нуба, решил сам:
let sortedArray = array.sort((b, a) => a[1].count - b[1].count);
Ответ написан
Комментировать
Anopeng
@Anopeng
Веб-программист, учу фронт и бек
let userArch = {
    Воин: {
      count: 0,
      description:
        'Описание...',
    },
    Монарх: {
      count: 0,
      description:
        'Описание...',
    }
}

let sortedEntries = Object.entries(userArch).sort(([,objA], [,objB]) => objA.count - objB.count);

Тут ничего сложного нет. И плюс я ещё немного упростил деструктурирующим присваиванием
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы