2017-10-16 56 views
0

我檢測的MousePointer是否是我在P5.js.已制定了ellipse內當鼠標與ellipse接觸它應該被刪除。我可以通過迭代存儲的省略號locations陣列上,檢查是否將鼠標指針是足夠接近他們通過訪問寬度element.w被擔保作爲內實現這一點。這是一種用一個簡單的做for循環:如何destory在foreach循環迭代對象

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???? 
    }     
}); 
+0

locations.forEach(function(element,i){看起來你可以通過一個索引來訪問https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/forEach並製作一個拼接背後 –

+0

檢查回調簽名https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach回調函數(CurrentValue的,索引,陣列) – JEY

回答

1

試試這個,如果你不想處理瀏覽器兼容性問題.remove()

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

該片段是從這個答案https://stackoverflow.com/a/5933167/4724167

0

嘗試使用element.remove(),但這具有跨瀏覽器兼容性問題。

+0

HTTPS演示:// www.w3schools.com/js/js_htmldom_nodes.asp – Nitheesh

0

陣列的使用過濾功能,高清變量保存新的數組