Почему ракеты не удаляются?
ракета пролетела всю длину экрана и вышла за пределы экрана(тут мой скрипт при помощи splice удаляет ракету из массива ракет)
Не удаляет. Нет у вас там кода, который такое делает. Есть код отвечающий за перемещение - с проверкой достижения границы экрана, и никакой ветки else, в которой и должно происходить удаление, там нет. Есть удаление ракеты при столкновении с кораблём. Удаления при выходе за границы экрана нет. Нет его. НЕ-ТУ.
А уж splice внутри forEach - за такое не грех и руки оборвать.
Необходимо добавить в условие передвижения ракет условие их уничтожения
Например, вот такif (rocket.type === "left") {
  if (rocket.xCoord < parseInt(this.fieldEl.style.width)) {
    rocket.move();
  } else if (rocket.xCoord === parseInt(this.fieldEl.style.width)) {
    this.rockets.splice(index, 1);
    return;
  }
}

if (rocket.type === "right") {
  if (rocket.xCoord > 0) {
    rocket.move();
  } else if (rocket.xCoord === 0) {
    this.rockets.splice(index, 1);
    return;
  }
}