JavaScript bietet kein integriertes Set-Objekt, aber Entwickler benötigen oft die Möglichkeit, eindeutige, ungeordnete Werte mit schneller Suche zu speichern, Hinzufügungs- und Löschfunktionen.
Verwenden eines Objekts mit booleschen Werten:
Wie vorgeschlagen In der Frage kann ein Objekt verwendet werden, um eine Menge nachzuahmen. Schlüssel stellen die Werte dar und alle Werte werden auf „true“ (oder einen beliebigen Wert ungleich Null) gesetzt. Dieser Ansatz ermöglicht ein schnelles Suchen und Löschen, das Hinzufügen wird jedoch langsamer, wenn die Anzahl der Schlüssel zunimmt.
ES6-Objekt festlegen:
Wenn Ihre Umgebung ES6 unterstützt (z. B. moderne Browser oder transpilierte Code) können Sie das integrierte Set-Objekt verwenden. Es bietet eine hervorragende Leistung für alle Mengenoperationen und ermöglicht darüber hinaus eine einfache Iteration über Elemente und die Vermeidung von String-Zwang.
Polyfills und vorgefertigte Objekte:
Für Umgebungen, die dies nicht unterstützen ES6 können Sie Polyfills wie „ES6-Set“ oder vorgefertigte Objekte wie „miniSet“ oder „set.js“ verwenden, die ähnliche Funktionen wie das ES6-Set-Objekt bieten. Diese bieten Vorteile wie Kompatibilität mit älteren Browsern oder einen geringeren Code-Footprint.
Implementierungsdetails:
Verwenden eines Objekts:
const setObj = {};
setObj["item1"] = true;
if ("item1" in setObj) { // fast lookup
console.log("Item found");
}
delete setObj["item1"]; // fast deletion
Verwenden des ES6-Set-Objekts:
const set = new Set();
set.add("item1");
if (set.has("item1")) { // fast lookup
console.log("Item found");
}
set.delete("item1"); // fast deletion
Verwenden einer Polyfüllung:
import Set from "es6-set";
const set = new Set(["item1", "item2"]);
console.log(...set.keys()); // easy iteration
Verwenden eines vorgefertigten Objekts:
const miniSet = new MiniSet("item1", "item2");
if (miniSet.has("item1")) { // fast lookup
console.log("Item found");
}
miniSet.remove("item1"); // fast deletion
Die beste Wahl hängt von den spezifischen Anforderungen und der in Ihrer Umgebung verfügbaren Unterstützung ab. Für komplexe oder leistungskritische Anwendungen ist das ES6-Set-Objekt ideal. Andernfalls kann die Verwendung eines Objekts, einer Polyfüllung oder eines vorgefertigten Satzobjekts eine sinnvolle Lösung darstellen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3