Словарь по-разному сортируется при передаче flask в JS - PullRequest
0 голосов
/ 02 апреля 2020

Я создаю словарь в python Flask, который содержит строки. Это такой порядок:

dict =  {01:'string1', 02:'string', 03:'string3',..., 10:'string10', 11:'string11'}

Порядок сортировки составляет 0,1,2, ..., 9

Как только я передаю этот диктат моему javascript, словарь порядок с этим методом сортировки:

dict =  {10:'string10', 11:'string11',...,01:'string1', 02:'string', 03:'string3' }

Порядок сортировки 1,2,3, ..., 9,0

Как сохранить порядок сортировки при прохождении словаря от python flask до JS

1 Ответ

0 голосов
/ 02 апреля 2020

Это не словарь (на стороне JavaScript), это объект. Свойства объекта теперь имеют порядок (добавленный в ES2015 и расширенный для дополнительных операций в ES2020), и предполагается, что вы создали эти свойства для объекта в порядке 01, затем 02, et c. во втором примере вы видите правильный порядок для объекта. Это происходит потому, что имена свойств, которые являются строками в каноническом целочисленном формате (10, 11), идут первыми, численно, за ними следуют любые другие свойства (например, 01, 02, которые не являются каноническими целочисленными строками из-за ведущий 0) в порядке их создания.

Если вы хотите произвольный порядок, используйте массив или Map. (Map s упорядочены по порядку добавления записей).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...