Я никогда не видел логического или (||) используемого в выражении равенства
Во-первых, здесь нет equals expression
, это присваивание.
Что сбивает с толку, так это отсутствие скобок
Рассмотрим
theArray[element1][element2] = (theArray[element1][element2 - 1] || theArray[element1][element2]);
, что может означать что-то вроде
theArray[element1][element2] = (true || false);