配列からそれを削除するには、配列の要素にdelete
を使用して問題配列エフェクトのパフォーマンス/メモリ消費量を削除し、続いて.push()を使用しますか?
は、私は.forEach()
呼び出しは、インデックスをスキップするように配列から要素を削除することを意識してる唯一の方法です。
質問
- 、
exampleArray[i]
は、例えば、その後のexampleArray.push()
は配列オブジェクトのメモリ 消費量を増加させ インデックスにdelete
を使用していますか? どうすればいいですか削除するオブジェクトはガベージコレクタに影響しますか?
要素の
exampleArray
をより効率的に削除する方法はありますか?旧var exampleArray = []; var n = 500; //Does this line imply a memory allocation? exampleArray.length = n; exampleArray.fill("Lorem Ipsum", 0); exampleArray.forEach(function(cur, ind, arr) { if(ind % 4 === 0) { delete arr[ind]; //Actually deletes the object itself, index no longer exists //Length does not change, however. Does available memory? } }, this); n /= 4; //Where, in memory, are these placed? while(n--) exampleArray.push("amet dolor");
の
例すべてのヘルプは高く評価され、ありがとうございました。
あなたの前提はかなり間違っています。 'delete'は配列からインデックスを削除する唯一の方法ではありませんが、実際にはそれは全く行われませんし、配列を意図したものでもありません。それがガベージコレクタやその他のものにどのような影響を与えますか?その後、実際には無関係になります。 – adeneo
私はあなたのように聞こえるが、何の仮定もしていない。私はそれが私が気づいた唯一の方法だと言いました、私を啓発する気がしますか? –
@ AndrueAndersonあなたの質問に対する短くて甘い答えを探しているなら、1)いいえ2)はありません3)[]。スプライス – Andbdrew