Heim  >  Artikel  >  Web-Frontend  >  Gibt es eine Hashmap in Javascript?

Gibt es eine Hashmap in Javascript?

藏色散人
藏色散人Original
2021-11-18 11:13:433796Durchsuche

Es gibt eine Hashmap in Javascript und die Methode zur Implementierung der Hashmap lautet „function HashMap(){this.map = {};}HashMap.prototype = {put: function...}“.

Gibt es eine Hashmap in Javascript?

Die Betriebsumgebung dieses Artikels: Windows7-System, Javascript-Version 1.8.5, DELL G3-Computer

Gibt es eine Hashmap in Javascript?

Implementierung von HashMap in JavaScript

Was ist HashMap?

Implementierung der Map-Schnittstelle basierend auf einer Hash-Tabelle. Diese Implementierung stellt alle optionalen Zuordnungsvorgänge bereit und ermöglicht Nullwerte und Nullschlüssel. (Die HashMap-Klasse ähnelt weitgehend einer Hashtable, außer dass sie nicht synchronisiert ist und Null zulässt.) Diese Klasse garantiert nicht die Reihenfolge der Karte und insbesondere nicht, dass die Reihenfolge unveränderlich ist. Diese Implementierung bietet eine stabile Leistung für grundlegende Vorgänge (Get und Put), vorausgesetzt, dass die Hash-Funktion die Elemente angemessen auf die Buckets verteilt. Die zum Durchlaufen einer Sammlungsansicht erforderliche Zeit ist proportional zur „Kapazität“ (Anzahl der Buckets) der HashMap-Instanz und ihrer Größe (Anzahl der Schlüsselwertzuordnungen).
Wenn es also auf die Iterationsleistung ankommt, stellen Sie die Anfangskapazität nicht zu hoch (oder den Ladefaktor zu niedrig) ein.

Implementierung von HashMap in JavaScript
    var emojMap = ["[笑脸]", "[微笑]", "[喜欢]", "[飞吻]", "[尖叫]"
        , "[大哭]", "[哭笑不得]", "[墨镜]", "[饿了]", "[发呆]",
        "[沉思]", "[不屑]", "[鬼脸]", "[得意]", "[发怒]",
        "[眨眼]", "[汗]", "[舒服]", "[糟糕]", "[张嘴]",
        "[口罩]", "[没有嘴]", "[恶魔]", "[睡觉]", "[困乏]",
        "[难受]", "[调皮]", "[倔强]", "[困惑]", "[天使]",
        "[不看]", "[不听]", "[不说]", "[祈祷]", "[剪刀手]",
        "[拳头]", "[楼上]", "[好的]", "[赞]", "[鄙视]",
        "[鼓掌]", "[星星]", "[心]", "[心碎]", "[满分]",
        "[钱袋]", "[便便]", "[鬼魂]", "[眼睛]", "[鼻子]",
        "[耳朵]", "[嘴巴]", "[舌头]", "[猪]", "[狗]",
        "[猴子]", "[小马]", "[熊猫]", "[熊]", "[外星人]"
    ];

Diese Nummer stellt die während unseres Entwicklungsprozesses vereinbarten Emoji-Erkennungsdaten zusammen und sendet sie an die Serverseite.

z. B.: Ich bin HelloWord! Analysieren nach „[XX]“Daten in diesem Format werden verwendet, um die entsprechenden Bilder abzugleichen
Gemeinsame Methoden von HashMap

Angesichts der Funktionsweise von HashMap müssen wir die allgemeinen Betriebsmethoden kapseln
    function HashMap(){
        this.map = {};
    }
    HashMap.prototype = {
        put : function(key , value){// 向Map中增加元素(key, value) 
            this.map[key] = value;
        },
        get : function(key){ //获取指定Key的元素值Value,失败返回Null 
            if(this.map.hasOwnProperty(key)){
                return this.map[key];
            }
            return null;
        },
        remove : function(key){ // 删除指定Key的元素,成功返回True,失败返回False
            if(this.map.hasOwnProperty(key)){
                return delete this.map[key];
            }
            return false;
        },
        removeAll : function(){  //清空HashMap所有元素
            this.map = {};
        },
        keySet : function(){ //获取Map中所有KEY的数组(Array) 
            var _keys = [];
            for(var i in this.map){
                _keys.push(i);
            }
            return _keys;
        }
    };
    HashMap.prototype.constructor = HashMap;
Das Obige ist unsere Kapselung HashMap-Operationsmethode.

Verwenden Sie HashMap, um eine Emoji-Ausdrucksbibliothek zu entwickeln

Zuerst dachte ich an mehrere Lösungen, genau wie das EmojiMap-Array, wenn die andere Partei eine Nachricht sendet


z. B.: Ich bin HelloWord! [Lächeln] Format

    var r = /\[(.+?)\]/g;
    var str = "[笑脸][喜欢]emoji表情";
    var txt,url,tpl;
    for (var i in str.match(r)) {
        tpl = "<img src=&#39;" + i + ".png&#39; >";
        str = str.replace(str.match(r)[i],tpl);
    }
    console.log(str);
Die ursprüngliche Idee bestand darin, das Array mit „Split“ in Arrays aufzuteilen und dann mit „Replace“ die entsprechenden Bilder zu ersetzen. Später stellte ich fest, dass diese Lösung Probleme verursachen würde, wenn zu viele Emoticons gepostet würden und nicht ersetzt werden könnten Die Indexposition des Array-Index muss angegeben werden. Später wechsle ich zur folgenden Methode: ein Wert.

Auf diese Weise können Sie es perfekt durch Emoji-Bilder zur Anzeige ersetzen.


Empfohlenes Lernen: „JavaScript-Grundlagen-Tutorial

Das obige ist der detaillierte Inhalt vonGibt es eine Hashmap in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn