JavaScript 不提供內建Set 對象,但開發人員通常需要能夠透過快速查找來儲存唯一的無序值,新增和刪除除功能。
使用具有布林值的物件:
如問題中所建議的,可以使用物件來模擬集合。鍵代表值,且值都設為true(或任何非空值)。這種方法提供了快速的查找和刪除,但隨著鍵數量的增加,添加變得更慢。
ES6 Set Object:
如果您的環境支援 ES6(例如,現代瀏覽器或轉譯)程式碼),您可以使用內建的 Set 物件。它對所有集合操作都具有出色的性能,並且還允許輕鬆迭代元素並避免字串強制。
Polyfill 和預先建構物件:
對於不支援的環境ES6,您可以使用像「ES6-Set」這樣的polyfill 或像「miniSet」或「set.js 」這樣的預構建對象,它們提供與ES6 Set 對象類似的功能。這些具有與舊版瀏覽器相容或較小的程式碼佔用等優點。
實作詳細資訊:
使用物件:
<code class="javascript">const setObj = {}; setObj["item1"] = true; if ("item1" in setObj) { // fast lookup console.log("Item found"); } delete setObj["item1"]; // fast deletion</code>
使用ES6 Set >
<code class="javascript">const set = new Set(); set.add("item1"); if (set.has("item1")) { // fast lookup console.log("Item found"); } set.delete("item1"); // fast deletion</code>
使用Polyfill:
<code class="javascript">import Set from "es6-set"; const set = new Set(["item1", "item2"]); console.log(...set.keys()); // easy iteration</code>
使用Pre-建構物件:
使用Pre-建構物件:<code class="javascript">const miniSet = new MiniSet("item1", "item2"); if (miniSet.has("item1")) { // fast lookup console.log("Item found"); } miniSet.remove("item1"); // fast deletion</code>
以上是如果沒有內建支持,如何在 JavaScript 中實現 Set 功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!