@alex0176

Как отсортировать элементы по значениям внутри объекта?

Привет!
Помогите решить такую задачу:
В HTML есть дата атрибут (data-params) с отсортированными уже значениями в алфавитном порядке в самом json формате (Audi, BMW, Jaguar...)
66e6c65e39994539157562.png
Затем я распарсиваю эти данные с помощью JSON.parse(params) и получаю уже совсем другой список не тот который был ранее в самом атрибуте. Видать метод JSON.parse( изменяет порядок вывода по своему алгоритму и это не то что мне нужно.
let params = document.querySelector('[data-params]').dataset.params;
      params = JSON.parse(params);

на выходе получаем объект:
66e6c24aec050528712569.png
Как мне отсортировать внутри объекта по значению из сохранение ключей соответственно.
Должно быть вот так
66e6c82b6586b353599165.png
ну из сохраняем ключей для каждого значения соответственно
Спасибо.
  • Вопрос задан
  • 112 просмотров
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Не нужно пытаться бороться с языком (объекты не подразумевают возможность сортировки. Нужно преобразовать данные в удобную для решения задачи структуру данных (массив объектов или кортежей) и оперировать уже ей, используя готовые методы.
Ответ написан
Комментировать
IvanU7n
@IvanU7n
nothing interesting here
внутри именно объекта никак, т.к. ЕМНИП порядок в JS всегда по ключам
но пройтись по ним в алфавитном порядке всё же можно:
const entries = Object.entries(params);
entries.sort((a, b) => a[1].localeCompare(b[1]));
for (const [ key, value ] of entries) {
    // whatever
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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