Нет ничего плохого в коде, его поведении в браузерах. Чтобы увидеть ответ даже в консоли разработчика (Chrome), вы можете использовать JSON .stringify:
console.log(JSON.parse(JSON.stringify(c)))
Я думаю, что приведенный ниже фрагмент решит вашу проблему:
const courses = [
{ teacher: "X", course: "JS" },
{ teacher: "X2", course: "JS2" }
];
courses.push({ teacher: "X3", course: "JS3" });
console.log(JSON.stringify(courses)); // [{"teacher":"X","course":"JS"},{"teacher":"X2","course":"JS2"},{"teacher":"X3","course":"JS3"}]
courses[1].course = "JS4";
console.log(JSON.stringify(courses)); // [{"teacher":"X","course":"JS"},{"teacher":"X2","course":"JS4"},{"teacher":"X3","course":"JS3"}]
Пожалуйста, найдите скриншот кода, выполненного в инструменте разработчика:
Код в инструменте разработчика