我正在JS中寫一個簡單的元球實現。我有一系列的元球,我遍歷它們的每一幀,併爲每一個我檢查距離每個其他元球,如果他們足夠接近我需要合併它們。刪除嵌套循環中的元素
這是我猜怎麼看,但我不知道如何正確地從數組中刪除元素,而不是打破循環。
for(var i = 0; i < points.length; i++) {
for(var j = 0; j < points.length ; j++) {
if(i != j) {
if(distance < 10) {
//remove one of the points using splice
}
}
}
}
感謝您的幫助。
那麼,什麼是「點」?它是一個「活的」集合還是靜態的?如果在迭代過程中從集合中刪除項目是一個問題,您可以隨時將要刪除的項目存儲在'toDelete'集合中,然後遍歷它以稍後刪除它們。 –
拼接文檔:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice#Examples –
這是一個很好的機會,這是一個O(n^3)算法,因爲各種刪除功能的時間可能會很糟糕。我說「可能是」,因爲JS數組的內部表示在規範中不明確。 –