https://stackoverflow.com/questions/5525795/does-j...
Давайте по пунктам:
1) JS сам со себе ничего не сортирует. Браузеры - могут.
2) В JS это не массив, а объект. Описанная конструкция - не валидна для js.
3) JQuery на 100% состоит из JS.
Если Вы сами сортируете и порядок важен, может стоит использовать действительно массив?
Это ассоциативный массив, в js нет такого понятия. Есть понятие Объект - { key: value }
Объекты служат для хранения неупорядоченной информации.
Разные браузерные движки могут сортировать ключ объекта по разному. Раньше это вообще было не регламентировано. Сейчас регламентировано, но порядок может быть не такой, какой Вы ожидаете. В ссылке на СО об этом говорится.
Если порядок информации важен, то нужно использовать либо просто массив - ['Авиационные', 'Военные', 'Гуманитарные'], либо как гласит статья - Map. Правда не знаю что там по передаче Map с бэка на фронт.
JS не гарантирует сохранения порядка ключей в объекте, а цифровые ключи часто сортирует, но можно попробовать хак. Сделайте ключи "не цифровыми". К примеру :
Вы на PHP отдаёте в функцию json_encode нумерованный массив, а надо отдавать именованный массив, т. е. цифры у вас должны быть строками - тогда по идее порядок сохранится, так как при парсинге JSON на стороне браузера уже получится объект, а не массив, как сейчас. При обходе объекта циклом порядок должен поручится такой же, какой он в JSON, но надо проверять.