【问题标题】:How to destory object iterated in foreach loop如何在foreach循环中销毁对象迭代
【发布时间】:2017-10-16 06:33:27
【问题描述】:

我正在检测鼠标指针是否在我在 P5.js 中绘制的ellipse 内。当鼠标与ellipse 接触时,它应该被删除。我可以通过遍历存储省略号locations 的数组来实现这一点,通过访问宽度element.w 检查鼠标指针是否足够靠近它们以保证在内部。这是一种使用简单 for 循环的方法:

for(var i = 0; i < locations.length; i++){
    var d = dist(mouseX, mouseY, locations[i].x, locations[i].y);
    if(d <= locations[i].w){
        locations.splice(i,1);
    }
}

我想知道forEach 循环的方法是什么。我假设它会类似于下面的代码,但是你如何真正销毁元素呢?

locations.forEach(function(element) {
    var d = dist(mouseX, mouseY, element.x, element.y);
    if(d <= element.w){
        //Destoy the element??? How do you do that????
    }                   
});

【问题讨论】:

标签: javascript


【解决方案1】:

如果您不想处理 .remove() 的浏览器兼容性问题,请尝试此操作

function removeDummy() {
    var elem = document.getElementById('dummy');
    elem.parentNode.removeChild(elem);
    return false;
}

sn-p 来自这个答案https://stackoverflow.com/a/5933167/4724167

【讨论】:

    【解决方案2】:

    使用数组的过滤功能,def变量保留新数组

    【讨论】:

      【解决方案3】:

      尝试使用element.remove(),但这存在跨浏览器兼容性问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-21
        • 2021-07-21
        • 1970-01-01
        • 2016-01-24
        • 2012-02-25
        • 2016-07-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多