Вам необходимо понять разницу между оператором присваивания = оператором эквивалентности == и оператором равенства ===.
пусть х = 1;
if (x = 2) всегда будет правдивым, поскольку вы только что присвоили 2 x, а 2 - правдиво.
Оператор === - это то, что вы хотите использовать при тестировании, если что-то равно чему-то другому.
если (x === 1) верно, а (x === 2) неверно.
Оператор эквивалентности == - это еще одна вещь, которую, как вы можете видеть, используют люди, но многие стандарты кодирования препятствуют его использованию, поскольку результат может не всегда соответствовать ожидаемому. Так как в (2 == '2') верно, поскольку целое число 2 эквивалентно строке 2, но они не равны в (2 === '2') смысле.
Видя, что вы тестируете логическое значение, вам не нужен оператор, и вы можете просто использовать
if (element.haveSeen)