Il existe un hashmap en javascript, et la méthode pour implémenter hashmap est "function HashMap(){this.map = {};}HashMap.prototype = {put: function...}".
L'environnement d'exploitation de cet article : système windows7, javascript version 1.8.5, ordinateur DELL G3
Y a-t-il un hashmap en javascript ?
Implémentation de HashMap en JavaScript
Implémentation de l'interface Map basée sur une table de hachage. Cette implémentation fournit toutes les opérations de mappage facultatives et autorise les valeurs nulles et les clés nulles. (La classe HashMap est à peu près la même chose qu'une Hashtable, sauf qu'elle n'est pas synchronisée et autorise null.) Cette classe ne garantit pas l'ordre de la carte, et en particulier elle ne garantit pas que l'ordre soit immuable. Cette implémentation offre des performances stables pour les opérations de base (get et put), en supposant que la fonction de hachage distribue les éléments de manière appropriée entre les compartiments. Le temps requis pour parcourir une vue de collection est proportionnel à la « capacité » (nombre de compartiments) de l'instance HashMap et à sa taille (nombre de mappages clé-valeur).
Donc, si les performances itératives sont importantes, ne définissez pas la capacité initiale trop élevée (ou le facteur de chargement trop bas).
var emojMap = ["[笑脸]", "[微笑]", "[喜欢]", "[飞吻]", "[尖叫]" , "[大哭]", "[哭笑不得]", "[墨镜]", "[饿了]", "[发呆]", "[沉思]", "[不屑]", "[鬼脸]", "[得意]", "[发怒]", "[眨眼]", "[汗]", "[舒服]", "[糟糕]", "[张嘴]", "[口罩]", "[没有嘴]", "[恶魔]", "[睡觉]", "[困乏]", "[难受]", "[调皮]", "[倔强]", "[困惑]", "[天使]", "[不看]", "[不听]", "[不说]", "[祈祷]", "[剪刀手]", "[拳头]", "[楼上]", "[好的]", "[赞]", "[鄙视]", "[鼓掌]", "[星星]", "[心]", "[心碎]", "[满分]", "[钱袋]", "[便便]", "[鬼魂]", "[眼睛]", "[鼻子]", "[耳朵]", "[嘴巴]", "[舌头]", "[猪]", "[狗]", "[猴子]", "[小马]", "[熊猫]", "[熊]", "[外星人]" ];
Ce numéro rassemble les données de reconnaissance Emoji convenues lors de notre processus de développement et les envoie au côté serveur
Par exemple : Je suis HelloWord ! Format
Nous devons. analyser en " [XX]"Les données dans ce format sont utilisées pour correspondre aux images correspondantes
Compte tenu du fonctionnement de HashMap, nous devons encapsuler les méthodes de fonctionnement courantes
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;
Ce qui précède est notre encapsulé Méthode de fonctionnement HashMap.
Au début, j'ai pensé à plusieurs solutions, tout comme le tableau emojiMap, si l'autre partie envoie un message
par exemple : Je suis HelloWord 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);
Moi L'idée initiale était d'utiliser split pour diviser le tableau en tableaux, puis d'utiliser replace pour remplacer les images correspondantes. Plus tard, j'ai découvert que cette solution poserait des problèmes si trop d'émoticônes étaient publiées et ne pouvaient pas être remplacées. la position d'index de l'indice du tableau doit être spécifiée
Plus tard, je passe à la méthode suivante :
var hashMap = new HashMap(); //先向hashMap中存入元素 for(var i in emojMap){ hashMap.put(emojMap[i] ,(parseInt(i))+'.png'); } var r = /([^\[\]]+)(?=\])/g; var str = "[笑脸][喜欢]emoji表情"; var txt,url,tpl; for (var i in str.match(r)) { //获取hashMap中对应的Value txt = hashMap.get(str.match(r)[i]) tpl = "<img src='" + i + ".png' >"; str = str.split(m[i]).join(tpl); } str=str.replace(/\[|]/g,''); console.log(str);
De cette façon, vous pouvez parfaitement le remplacer par des images Emoji à afficher.
Apprentissage recommandé : "
Tutoriel sur les bases de JavaScriptCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!