千家信息网

javascript中有没有hashmap

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍javascript中有没有hashmap,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!javascript中有hashmap,其实现hashmap的方法是"f
千家信息网最后更新 2026年11月02日javascript中有没有hashmap

这篇文章主要介绍javascript中有没有hashmap,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

javascript中有hashmap,其实现hashmap的方法是"function HashMap(){this.map = {};}HashMap.prototype = {put : function...}"。

本文操作环境:windows7系统、javascript1.8.5版、DELL G3电脑

JavaScript中HashMap的实现

什么是HashMap?

基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 collection 视图所需的时间与 HashMap 实例的"容量"(桶的数量)及其大小(键-值映射关系数)成比例。
所以,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低)。

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

这个数组装的我们开发过程中约定的Emoji识别数据,发送给Server端的数据

eg:我是HelloWord![微笑]格式

我们需要解析以"[XX]"这样格式的数据来匹配相对应的图片

HashMap的常用方法

鉴于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;

以上就是我们封装的HashMap操作方法。

利用HashMap开发Emoji表情库

最开始我想过几种方案,就像emojiMap数组一样,如果对方发消息过来

eg:我是HelloWord![微笑]格式

    var r = /\[(.+?)\]/g;    var str = "[笑脸][喜欢]emoji表情";    var txt,url,tpl;    for (var i in str.match(r)) {        tpl = "";        str = str.replace(str.match(r)[i],tpl);    }    console.log(str);

我最开始的想法是利用split分割成数组,然后用replace替换相对应的图片,后来发现这种方案表情发多了会出现问题,无法替换.
而且需要指定数组下标的index位置
后来我改成以下方法:

    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 = "";        str = str.split(m[i]).join(tpl);    }    str=str.replace(/\[|]/g,'');    console.log(str);

使用HasMap的好处就是不用担心key的位置了,因为每个key都对应一个val。

这样就可以完美替换成Emoji图片展示了。

以上是"javascript中有没有hashmap"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

元素 方法 数组 表情 图片 数据 格式 笑脸 微笑 位置 内容 容量 就是 常用 性能 方案 篇文章 顺序 哈希 保证 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 互联网最新的科技有限公司 亿策互联网科技 成都互联网科技公司 唐信互联网科技 大连 互联网金融监管科技 安控科技rtu产品工业互联网 北京华百购互联网科技有限公司 贵州叶脉互联网科技有限公司所属行业 互联网为啥属于高科技 互联网科技创新的路径 中国互联网有什么科技 银行科技岗属于互联网吗 本届互联网大会上的黑科技 科技和互联网行业的特点 亚光科技低轨卫星互联网 长沙易易互联网科技有限公司 河南商务圈互联网科技有限公司 互联网科技创新方面的资料 科技发展第三阶段互联网时代 互联网科技公司官网 西安互联网科技公司 太原新华互联网科技学校怎么样 湖南洣水互联网科技有限公司扣款 天津腾达互联网科技有限公司 富国互联网科技002692 宇信科技在杭州互联网排第几 有人说阿里系是互联网科技企业 亚光科技低轨卫星互联网 北京瑞云互联网科技有限公司
0