ShelestovAnt
@ShelestovAnt
Верстаю и программирую

Как отключить автоматическуцю сортировку массива для fetch запросе?

Всем привет!

Выполняется fetch на сервер и в ответ пполучаю результат .then(res => res.json())

На сервере я отдаю отсортированный массив как мне нужно.
[
     36 => 'Авиационные',
     1 => 'Военные',
     15 => 'Гуманитарные'
     ...
]


Но javascript зачемто сам сортирует по ключам.

Кто-нибудь вкурсе как можно отключить это? Я понимаю что это спецификация, но в jquery кажется такого не было... Может фикс есть како-нибудь?
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
coderisimo
@coderisimo Куратор тега JavaScript
JS не гарантирует сохранения порядка ключей в объекте, а цифровые ключи часто сортирует, но можно попробовать хак. Сделайте ключи "не цифровыми". К примеру :

[
     "+36" => 'Авиационные',
     "+1" => 'Военные',
     "+15" => 'Гуманитарные'
]


либо поменяйте структуру данных. Можно отдавать массив объектов , где объект может выглядеть ,как :



{id: 36, title:'Авиационные'}

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Вы на PHP отдаёте в функцию json_encode нумерованный массив, а надо отдавать именованный массив, т. е. цифры у вас должны быть строками - тогда по идее порядок сохранится, так как при парсинге JSON на стороне браузера уже получится объект, а не массив, как сейчас. При обходе объекта циклом порядок должен поручится такой же, какой он в JSON, но надо проверять.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
21 нояб. 2024, в 19:31
500 руб./за проект
21 нояб. 2024, в 19:28
200000 руб./за проект