@Aztart

Как отсортировать объект по первым ключам в JavaScript?

Имеется объект такого вида:

let code_list = {
  "0014" : { "far"  : "itar"  },
  "0143" : { "itih" : "sarat" },
  "0067" : { "sur"  : "gures" },
  "0013" : { "gar"  : "unar"  },
};


Нужно привести его к такому виду:
code_list = {
  "0013" : { "gar"  : "unar"  },
  "0014" : { "far"  : "itar"  },
  "0067" : { "sur"  : "gures" },
  "0143" : { "itih" : "sarat" },
};

То есть, отсортировать по первым ключам.

Какими способами это можно сделать?
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Использовать массив. В JS объекты не поддерживают сортировку. За подробностями - в стандарт/поиск, уже много раз было обсуждено и разжёвано.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
PeterLS
@PeterLS
Руководитель веб-студии
В JavaScript объекты не имеют встроенной возможности сохранять порядок своих ключей. Ключи объекта обычно перечисляются в порядке их добавления для нечисловых ключей. Однако, есть способы "сортировки" объекта, т. е. создания нового объекта, ключи которого добавляются в определенном порядке.

Один из способов это сделать – извлечь ключи, отсортировать их, а затем создать новый объект, используя отсортированные ключи. Вот как это делается:
let code_list = {
  "0014" : { "far"  : "itar"  },
  "0143" : { "itih" : "sarat" },
  "0067" : { "sur"  : "gures" },
  "0013" : { "gar"  : "unar"  },
};

// Взять ключи объекта и отсортировать их
let sortedKeys = Object.keys(code_list).sort();

// Создать новый объект с использованием отсортированных ключей
let sortedCodeList = {};
sortedKeys.forEach(key => {
  sortedCodeList[key] = code_list[key];
});

console.log(sortedCodeList);

Теперь в sortedCodeList ключи располагаются в нужном порядке (0013, 0014, 0067, 0143). Обратите внимание, что это создает новый объект, а исходный объект code_list остается без изменений.
Ответ написан
@historydev Куратор тега JavaScript
Острая аллергия на анимешников
const sortedList = Object.keys(code_list).sort();
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы