=== на объекте проверяется адрес объекта, а не значение. Если вам нужна дополнительная информация, вы можете посмотреть, как работают указатели.
Но в принципе, если (hero === selectedHero) возвращает true, они указывают на тот же адрес памяти. Поэтому, если вы измените значение selectedHero, оно также изменит значение героя [0].