如何在foreach循环中迭代陷阱对象

时间:2017-10-16 06:33:27

标签: javascript

我正在检测mousepointer是否在我在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????
    }                   
});

3 个答案:

答案 0 :(得分:1)

使用Array的过滤函数,def变量保留新数组

答案 1 :(得分:1)

如果您不想处理.remove()

的浏览器兼容性问题,请尝试此操作
function removeDummy() {
    var elem = document.getElementById('dummy');
    elem.parentNode.removeChild(elem);
    return false;
}

该代码段来自此https://stackoverflow.com/a/5933167/4724167

答案 2 :(得分:0)

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