Неделя 3 должна быть после недели 2 (как в 2,3,4,5), а не до
Есть два вопроса:
Вы ничего не сделали для сортировки результата, и входные данные не отсортированы, поэтому, естественно, результат не отсортирован.
Хотя свойства объекта теперь имеют порядок (по состоянию на ES2015), некоторые операции (Object.keys
, for-in
) не требуются для соблюдения этого порядка. (Более того, как указывает Trincot, концептуально объекты не имеют порядка в своих свойствах, даже если они имеют механический характер.) В общем, если вы хотите использовать порядок, используйте массив, а не объект. В качестве альтернативы, если вам нужен определенный порядок и пары ключ / значение, используйте Map
, который сохраняет свои записи в порядке создания (для всех операций с Map
).
Если вы хотите придерживаться объекта и полагаться на порядок свойств ES2015 +, самое простое решение - отсортировать входные данные перед созданием выходных данных, чтобы свойства для недель создавались в нужном порядке (поскольку эти свойства имена не являются целочисленными индексами, поэтому они будут перечислены в порядке их создания).
Если вы переключаетесь на массив, то, естественно, вы можете легко отсортировать полученный массив так, как вам нравится.