Сортировать массив с объектами внутри объектов - PullRequest
0 голосов
/ 30 марта 2020

У меня есть этот массив:

[
  ["name1", { count: 20 }],
  ["name2", { count: 10 }]
]

Как бы я go о сортировке этого массива по значению count?

Я пытался использовать функцию сортировки,

const sort = Array.sort((a, b) => b.count - a.count);

Но это ничего не изменило.

1 Ответ

3 голосов
/ 30 марта 2020

Вам необходимо получить доступ ко второй записи в массивах внутри внешнего массива. Ваш код использует count для записей массива, но у них нет свойства count:

theArray.sort((a, b) => b[1].count - a[1].count);

Обратите внимание, что вы вызываете sort для фактического массива, а не Array конструктор. Он также сортирует массив на месте, а не возвращает отсортированный массив (хотя также возвращает массив, к которому вы его вызываете).

Live Пример:

const theArray = [
  ["name1", { count: 20 }],
  ["name2", { count: 10 }],
  ["name3", { count: 15 }]
];
console.log("before:", theArray);
theArray.sort((a, b) => b[1].count - a[1].count);
console.log("after:", theArray);
.as-console-wrapper {
    max-height: 100% !important;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...