Effiziente Hashmap-Implementierungen in JavaScript
Während JavaScript-Objekte als Wörterbücher verwendet werden können, bieten sie keine echte Hashing-Funktionalität. Infolgedessen können sich Objekte mit unterschiedlichen Zeichenfolgendarstellungen, aber äquivalenten Werten gegenseitig überschreiben.
Verwenden benutzerdefinierter Tastenfunktionen
Um eine effiziente Hashmap zu erstellen, können Sie manuell eine definieren Schlüsselfunktion basierend auf den einzigartigen Eigenschaften Ihrer Objekte. Die resultierenden Zeichenfolgen können dann als Schlüssel in einem regulären JavaScript-Wörterbuch verwendet werden.
var key = function(obj){ // Some unique object-dependent key return obj.totallyUniqueEmployeeIdKey; // Just an example }; var dict = {}; dict[key(obj1)] = obj1; dict[key(obj2)] = obj2;
Vorteile dieses Ansatzes:
Kollisionen vermeiden
Um Kollisionen zwischen Schlüsseln zu vermeiden, die von verschiedenen Objekten generiert werden, sollten Sie sorgfältig darüber nachdenken Einzigartige Eigenschaften Ihrer Objekte und nutzen Sie diese in Ihrer Schlüsselfunktion. Verwenden Sie bei Bedarf nicht-lateinische Unicode-Zeichen oder Trennzeichen, um Konflikte mit Standardeigenschaften zu vermeiden.
ES6 Maps and Sets
ECMAScript 6 führte Maps and Sets ein, die integrierte Funktionen bieten -in Hashing-Funktionen und unterstützen Schlüssel mit beliebigem Wert, einschließlich Objekten.
Vorteile von Maps:
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