Я очистил setInterval, а затем проверил условия и добавил перерыв, который не был бы незаконным, так как я вышел из интервала, и поэтому он сработал для меня, спасибо, ребята, за ваши предложения
maingameloop = function (antsArray) {
//inititialization
// antsArray[i].draw();
// antsArray[i].checkifSmashed();
//gameloop
if (this.isplaying) {
for (let i = 0; i< antsArray.length; i++) {
let gameloop = setInterval(() => {
antsArray[i].move();
antsArray[i].update(antsArray);
if (antsArray[i].isSquashed) {
this.score++;
clearInterval(gameloop);
}
}
, this.FRAME_RATE);
if(antsArray[i].isSquashed ){
antsArray.splice(i, 1);
break;
}
}
}else {
//gameover
// this.maingameloop(antsArray);
}
}