Этот ответ в значительной степени зависит от отсутствия определенного ключевого критерия порядка в вопросе. Если порядок ключей определен, решение становится легким, поскольку может быть создан алгоритм преобразования или сортировки для обработки ключей в определенном порядке.
Поскольку длительное обсуждение в комментариях убедительно доказало, что, поскольку в вопросе не указаны явные критерии для порядка ключей, не существует надежного способа гарантировать, что элемент, разрезанный любым методом, действительно будет тем, что рассматривается человеческий наблюдатель как «первый элемент».
В статье , упомянутой @JordanRunning, уже говорится, что ключи с целочисленными или целочисленными конвертируемыми значениями ставятся в качестве первых элементов.
После этого @Paulpro упомянул, что Object.getOwnPropertyNames и Reflect.ownKeys имеют гарантированный порядок, но Object.keys и Object.entries не имеют гарантированный порядок с ES6.
Если элементы являются только этими 4 ключами в вопросе, то ответ, который использовал бы Object.getOwnPropertyNames или Reflect.ownKeys, был бы возможен, как только порядок гарантированно стал хронологическим для строковых ключей. Но как только мы не знаем, будет ли свойство с целочисленным (или целочисленным конвертируемым) именем или даже что произойдет после элемента z
, окончательного ответа на этот вопрос не будет.
Например: скажем, ключи объекта изначально алфавитные. Что происходит после z? следующий ключ аа, аа, и т. д? если да, хорошо ... но есть так много других возможностей ... что, если после z пришел 1? или это кириллица с нестандартными символами? Например, на португальском есть буквы с акцентом, которые для некоторых алгоритмов сортировки идут после всех других букв. Таким образом, у вас есть A, который идет первым, и Á, который идет после Z. Что если алгоритм, который создал объект, упорядочил его неправильно из-за этого, и хронологический порядок стал неправильным?
Итог: невозможно использование объектов. Вместо этого используйте карту, массивы или любое другое решение или определите порядок ключей, как указано ранее.