console.log не стандартизирован, поэтому поведение довольно неопределенное,
Консоль должна где-то хранить зарегистрированные значения и отображать их на экране.Рендеринг будет происходить точно асинхронно (будучи ограниченным обновлениями с ограничением скорости), как и будущие взаимодействия с зарегистрированными объектами в консоли (например, расширение свойств объекта).
Таким образом, консоль может либо клонироваться (сериализироваться)изменяемые объекты, которые вы записали в журнал, или он будет хранить ссылки на них.Первый плохо работает с глубокими предметами.Кроме того, по крайней мере начальный рендеринг в консоли, вероятно, покажет «текущее» состояние объекта, то есть то, когда он был зарегистрирован - в вашем примере вы видите Object {}. напоминание о том, что многомерный массив также является объектом
Однако, когда вы расширяете объект для дальнейшей проверки его свойств, вполне вероятно, что консоль сохранит только ссылку на ваш объект иего свойства, и их отображение теперь покажет их текущее (уже мутировавшее) состояние.
на этот ответ влияет Bergis ответ на этот вопрос.