Heim > Artikel > Web-Frontend > Gibt es eine Hashmap in Javascript?
Es gibt eine Hashmap in Javascript und die Methode zur Implementierung der Hashmap lautet „function HashMap(){this.map = {};}HashMap.prototype = {put: function...}“.
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
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.
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
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;
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='" + i + ".png' >";
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.
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!