Вывод консоли в порядке, как и в объектном javascript

У меня есть объект массива, который я показываю в консоли, но с измененными ключами. При открытии этого объекта в консоли сначала показывается массив, который идет вторым в объекте (он отсортирован по алфавиту), а потом первым, как это исправить и заставить их появляться в правильном порядке? Важно сохранить возможность расширения массивов внутри объекта, поэтому реализация вывода через строку не получится.

const resultMain = {
    mad: [1, 2, 3],
    led: [62, 73, 85, 96, 10],
};

const customConsoleOutput = {
    top: resultMain.mad,
    rest: resultMain.led,
};

console.info(customConsoleOutput);

Вывод консоли:

{top: Array(3), rest: Array(5)}

Но когда объект открылся:


{top: Array(3), rest: Array(5)}
>rest: (5) [62, 73, 85, 96, 10]
>top: (3) [1, 2, 3]
>[[Prototype]]: Object

Мне нужно, чтобы top был первым выводом, а rest - вторым выводом, я читал об алфавитной сортировке в браузерах и не понимал, как ее изменить, единственное, что я нашел, это вывод через console.table, но это не у меня не работает.

Почему в вашем случае важен порядок клавиш, отображаемых на консоли (да, в Chrome они отображаются в алфавитном порядке, но это не должно иметь значения для работы вашего кода)? Что для вас должно иметь значение, так это порядок итерации ключей в вашем объекте, который находится в порядке вставки (в большинстве механизмов или тех, которые совместимы с ES2020) для ваших конкретных строковых ключей. Если вам нужен надежный порядок итераций, вместо этого вы можете использовать Map.

Nick Parsons 08.10.2023 10:21

Я понимаю, просто мне дали такую ​​задачу сделать вывод в консоль корректным, этот код ничего не делает, и от меня хотят узнать, как реализовать правильный вывод

Heropaster 08.10.2023 10:34
how to implement the correct output вы не можете, потому что правильный вывод является чисто субъективным, поскольку никогда не следует полагаться на порядок ключей в объекте. Тот факт, что свойства расположены в алфавитном порядке, упрощает поиск конкретного свойства, когда у вас их сотни... консоль - это инструмент, и в этом инструменте алфавитный порядок имеет смысл.
Jaromanda X 08.10.2023 10:45

Отвечает ли это на ваш вопрос? Гарантирует ли JavaScript порядок свойств объекта?

Konrad 08.10.2023 13:19
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
54
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ключи объектов JavaScript имеют определенный внутренний порядок, но этот порядок определяется спецификацией ECMAScript. Согласно этой спецификации, ключи объекта хранятся в том порядке, в котором они были созданы, и их вывод на консоль следует этому порядку.

Однако здесь важно отметить, что большинство инструментов разработчика браузера автоматически сортируют ключи объектов в алфавитном порядке. Это не имеет ничего общего со спецификацией ECMAScript и является просто функцией пользовательского интерфейса инструментов разработчика браузера.

Поэтому исправить эту проблему в самом коде сложно. Однако при печати на консоль можно получить желаемый результат, разделив массивы и распечатав их.

Это почти точно, поскольку цифровые клавиши всегда будут первыми, и в числовом порядке - тогда нецифровые клавиши располагаются в указанном вами порядке Object.keys(object) показывает ключ "порядок" - конечно, я признаю, что порядок на самом деле может и не быть фактический порядок внутри, но порядок ключей в объекте, в конце концов, не имеет значения

Jaromanda X 08.10.2023 10:34

Я понимаю, я сделал так, но все равно не близко к идеалу и хочу сделать так, как описал, но не представляю, как к этому прийти. function customConsoleOutput(obj) { console.info("{top:", obj.mad, ", rest:", obj.led, "}"); }

Heropaster 08.10.2023 10:35
ChatGPT запрещен в SO
mplungjan 08.10.2023 11:03
Ответ принят как подходящий

Вы не можете сделать это намеренно. Значения отсортированы, поэтому вы можете найти нужное среди объектов с десятками свойств.

Вам понадобится специальный форматировщик Devtools, чтобы отформатировать объект другим способом.

Другие вопросы по теме