簡體   English   中英

Javascript:如何將空洞插入稀疏數組或創建空洞

[英]Javascript: How to insert a hole into a sparse array or creating a hole

我正在使用稀疏的 arrays 來高效處理龐大的數據集 memory。 (並表示孔和undefinednull條目之間的區別)通過設置datapoints.lentgh在末尾添加孔是可以的。

datapoints = [10,,,20,,,10,1]

不,我面臨如何插入孔的問題(比如 20 之前)

datapoint.splice(3,0)

不起作用,我找不到插入孔的(簡單)方法。 (認為我必須重建數組但想過問過)或者有沒有辦法將“定義的”條目更改為一個洞? delete datapoint[4]; 創建一個未定義的條目而不是一個洞:(

您的稀疏數組實際上是一個 object。您可以刪除項目,也可以添加項目。

假設您想在 position offset之前添加k個孔。 然后:

 datapoints = [10,,,20,,,10,1]; function addHoles(offset, k, datapoints) { let migration = {}; for (let key in datapoints) { let intKey = parseInt(key); if (intKey >= offset) { migration[intKey] = datapoints[intKey]; delete datapoints[intKey]; } } for (let key in migration) { let intKey = parseInt(key); datapoints[intKey + k] = migration[intKey]; } return datapoints; } console.log(addHoles(3, 3, datapoints));

認為我可以一起工作

datapoint.splice(3,0,undefined);
delete datapoint[3]

看來我現在有一個洞......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM