@venomphp

Как сортировать объект в алфавитном порядке в js?

Как сортировать по алфавиту такой объект в js ?
{
4889: "Скрипт "
4914: "Ааа"
11994: "Сервис"
12344: "иииии"
12417: "Тестовая"
12432: "ТТТ "
12446: "Ма"
}
  • Вопрос задан
  • 342 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
К объектам неприменимо понятие сортировки. Порядок итерирования записей в объекте определяется стандартом: сначала числовые ключи по возрастанию, затем ключи, приводимые с строкам, по возрастанию, затем остальные ключи в порядке создания.
Ответ написан
Комментировать
@iljaGolubev
Вы не можете управлять порядком отображения свойств при переборе.
В вашем объекте свойства указаны как число и js всегда будет перебирать такие свойства в порядке возрастания. Можно создать новый объект, но со строковыми именами свойств - тогда они будут в порядке добавления.
var ordered = Object.entries({
  4889: "Скрипт ",   4914: "Ааа",   11994: "Сервис",   12344: "иииии",    12417: "Тестовая",  12432: "ТТТ ",   12446: "Ма"
}).sort(
  (a,b)=>a[1]<b[1]?-1:a[1]>b[1]?1:0
).reduce(
  (a,c)=>{a[`'${c[0]}'`]=c[1]; return a},
  {}
);
Object.getOwnPropertyNames(ordered)
// ["'4914'", "'12446'", "'11994'", "'4889'", "'12432'", "'12417'", "'12344'"]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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