Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除数组中的最后一项,删除整个数组_Javascript_Arrays_P5.js - Fatal编程技术网

Javascript 删除数组中的最后一项,删除整个数组

Javascript 删除数组中的最后一项,删除整个数组,javascript,arrays,p5.js,Javascript,Arrays,P5.js,我在for循环中有一个if语句,它在整个数组中循环并显示元素: for (var i = 0; i < txtA.length; i++) { txtA[i].update(); txtA[i].show(); if (txtA[i].y == height) { txtA.pop(); console.log(txtA.length); } } for(变量i=0;i

我在for循环中有一个if语句,它在整个数组中循环并显示元素:

for (var i = 0; i < txtA.length; i++) {
    txtA[i].update();
    txtA[i].show();

    if (txtA[i].y == height) {
        txtA.pop();
        console.log(txtA.length);
    }
}
for(变量i=0;i

if语句检查元素相对于画布的高度,并删除元素。问题是当if语句等于true时,数组中的所有元素都将被删除。救命啊

因为你在做流行音乐。Pop删除数组的最后一个元素。如果你的第一个项目击中底部,那么它将删除数组中的最后一个项目。它将循环并继续移除最后一个项目,直到最后移除第一个触底的项目

使用拼接代替


txtA.拼接(i,1)

您的逻辑一定有错误,如果不知道数组的内容,很难解决这个问题

也就是说,
Array.prototype.pop
不对您描述的行为负责。发件人:

pop方法从数组中删除最后一个元素并返回 调用方的值。。。如果对空数组调用pop(),它将返回 未定义


即,pop从数组中删除最后一个元素,或者(在空数组的情况下)不执行任何操作并返回未定义的元素;它从不实际删除数组。如果它正在清除数组,那么它必须一次删除一个元素,在每次迭代中从数组末尾弹出一个元素。

我们还可以看到您正在使用的数组吗?您确定数组有多个元素开始吗?数组包含多个对象构造函数,其中包含x、y、letter、update()和show();@Carcigenicate当按下一个键时,数组会得到一个元素,然后当数组的某个元素触底时,程序会尝试删除该元素。但是它删除了所有元素,我可以从console.log中看出这一点