为了账号安全,请及时绑定邮箱和手机立即绑定

javascript实现Map结构

标签:
JavaScript

//定义map    function Map() {    this.container = {};}//将key-value放入map中    Map.prototype.put = function(key, value) {    try {        if (key != null){            this.container[key] = value;        }    } catch (e) {        return e;    }};//根据key从map中取出对应的value    Map.prototype.get = function(key,deft) {    if(!this.containsKey(key)){        return deft;    }    try {        return this.container[key];    } catch (e) {        return e;    }};//判断map中是否包含指定的key    Map.prototype.containsKey = function(key) {    try {        for ( var p in this.container) {            if (p == key)                return true;        }        return false;    } catch (e) {        return e;    }}//判断map中是否包含指定的value    Map.prototype.containsValue = function(value) {    try {        for ( var p in this.container) {            if (this.container[p] === value)                return true;        }        return false;    } catch (e) {        return e;    }};//删除map中指定的key    Map.prototype.remove = function(key) {    try {        delete this.container[key];    } catch (e) {        return e;    }};//清空map    Map.prototype.clear = function() {    try {        delete this.container;        this.container = {};    } catch (e) {        return e;    }};//判断map是否为空    Map.prototype.isEmpty = function() {    if (this.keySet().length == 0)        return true;    else        return false;};//获取map的大小    Map.prototype.size = function() {    return this.keySet().length;}//返回map中的key值数组    Map.prototype.keySet = function() {    var keys = new Array();    for ( var p in this.container) {        keys.push(p);    }    return keys;}//遍历MapMap.prototype.each = function(fun){    var keys = this.keySet();    for(var i = 0;i < keys.length;i++){        fun(keys[i],this.get(keys[i]));    }}//返回map中的values值数组    Map.prototype.values = function() {    var valuesArray = new Array();    var keys = this.keySet();    for (var i = 0; i < keys.length; i++) {        valuesArray.push(this.container[keys[i]]);    }    return valuesArray;}//获取Map的最大值,参数为比较函数Map.prototype.max = function(compare){    var keys = this.keySet();    var maxKey = keys[0],maxValue = this.get(keys[0]);    for(var i = 0;i < keys.length;i++){        if(compare(this.get(keys[i],maxValue))){            maxValue = this.get(keys[i]);            maxKey = keys[i];        }    }    return [maxKey,maxValue];}//返回 map 中的 entrySet 对象Map.prototype.entrySet = function() {    var array = new Array();    var keys = this.keySet();    for (var i = 0; i < keys.length; i++) {        array.push(keys[i],this.container[keys[i]]);    }    return array;}

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消