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

时间:2016-09-19 22:34:07

标签: 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);
    }
}

if语句检查与画布相比的元素高度并删除元素。问题是当if语句等于true时,将删除数组中的所有元素。帮助!

2 个答案:

答案 0 :(得分:1)

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

使用拼接代替

txtA.splice(i, 1);

答案 1 :(得分:0)

你的逻辑必须是错误的,如果不知道数组的内容就很难解决。

话虽如此,Array.prototype.pop 对您描述的行为负责。来自MDN

  

pop方法从数组中删除最后一个元素并返回该元素   调用者的值...如果在空数组上调用pop(),则返回   未定义。

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