';如果';在';foreach&x27;javascript

';如果';在';foreach&x27;javascript,javascript,arrays,canvas,foreach,Javascript,Arrays,Canvas,Foreach,您好,我用xPos和yPos创建了3个数据数组,用foreach开始对它们进行迭代 ctx.drawImage(Images['car1.png'], element.x, element.y, Images['car1.png'].width * SCALE, Images['car1.png'].height * SCALE); element.y += SPEED * dt if (Player

您好,我用xPos和yPos创建了3个数据数组,用foreach开始对它们进行迭代

ctx.drawImage(Images['car1.png'],
            element.x,
            element.y,
            Images['car1.png'].width * SCALE,
            Images['car1.png'].height * SCALE);
element.y += SPEED * dt
if (PlayerYpos + Images['car3.png'].height * SCALE <= element.y) {
        CountEnd++;
        Entity.splice(index, 1)
        Entity.push({
            x: ~~(Math.random() * (canvas.width - Images['car1.png'].width - Images['car1.png'].width + 1)) + Images['car1.png'].width,
            y: ~~(Math.random() * (-700 - (-400) + 1)) + (-400)
        });
    }
ctx.drawImage(图像['car1.png'],
元素x,
元素y,
图像['car1.png'].宽度*比例,
图像['car1.png'].高度*比例);
元素y+=速度*dt

如果(PlayerYpos+Images['car3.png'].height*SCALE专门针对您的代码,我认为错误出现在第162行和第163行,其中实体应更改为Pit(Pit.splice和Pit.push)。因为,我假设您是forEach循环通过Pit,因此希望修改这些行上的Pit数组


但另一方面,我发现在forEach()上使用map()不太容易出错/更容易调试。map()稍微快一点,可以做forEach()能做的一切,但也可以返回结果,而forEach不这样做(尽管它允许您将返回写入其回调函数):

使用for循环,如果使用entity.push也不起作用。使用map(),我甚至无法想象如何实现它,特别是因为我不需要新的数组。只是刷新了页面并看到了更改。使用for循环,如果使用entity.push也不起作用。使用map(),我甚至无法想象如何实现它,特别是因为我不需要一个新的数组。更改推送有帮助,但此时if触发会立即出现在PlayerYpos上的pit和entity上。其余的都可以用map替换forEach,看看是否有帮助?我用map()重写了它它成功了。我该如何处理它创建的新阵列?非常感谢!)我试图给你添加评级,但他们没有给我。很抱歉