Почему возникает ошибка «FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed — JavaScript heap out of memory»?
Ну, память кончилась. Потому что... так, представьте, что обрабатывается последний элемент вашего массива, и доходит очередь до вот этого:

array[i+1]=true;
Размер вашего массива увеличится, последний элемент перестанет быть последним, и цикл, вместо того, чтобы завершится, уйдёт на следующую итерацию. А там опять array[i+1]=true; (или array[i+1]=false;, в зависимости от условия) - массив снова увеличился, опять цикл не завершился, ну и так далее - массив будет жиреть до тех пор, пока станет невозможно выделить ему ещё памяти.

UPD. Я так понял, речь об этой задаче.
Решается вот прям совсем просто.
const ops = {
  OR: arr => arr.some(Boolean),
  AND: arr => arr.every(Boolean),
  XOR: arr => !!arr.reduce((p, c) => p ^ c, 0),
};

const logicalCalc = (arr, op) => ops[op](arr);

array[i+1]=true;
Вы массив бесконечно увеличиваете, вот оно и падает в  out of memory
Что за ад-то вообще с синтаксисом и т.д.
Не говоря уже про саму реализацию и оптимизированность в целом.
Вы что JS скриптов никогда не видели?