首页 > 编程 > JavaScript > 正文

javascript 实现map集合

2019-11-20 12:46:08
字体:
来源:转载
供稿:网友

前几天项目上想用map集合一样的东西,简单拿对象拼了一下子,今天闲的慌实现一下
大家不要见笑

代码

var Map = function (){  /************基础变量**************/  var hashmap = {};  var keys = [];  var vals = [];  var entrys = [];  var size = 0;  var index = {};   var Entry = function(key,value){    var entryKey = key;    var entryValue = value;    this.getKey = function (){      return entryKey;    };    this.getValue = function(){      return entryValue;    };  };  /************基本方法 按字母排序**************/  this.clear = function(key) {    hashmap[key] = undefined;    var i = index[key];    entrys.splice(i,1);    vals.splice(i,1);    keys.splice(i,1);    size --;  };     this.entrySet = function() {    return entrys;  };     this.get = function(key){    return hashmap[key];  };     this.isEmpty = function() {    if(hashmap) return true;    return false;  };   this.keySet = function() {    return keys;  };     this.put = function(key,value){    if(!this.get(key)){      entrys.push(new Entry(key,value));      keys.push(key);      vals.push(value);      index[key] = size;      size ++;    } else {      var i = index[key];      entrys[i] = new Entry(key,value);      vals[i] = value;    }    hashmap[key] = value;  };   this.size = function() {    return size;  };     this.values = function() {    return vals;  };};/************扩展方法**************/Map.prototype = {  containsKey : function(key) {    if(this.get(key)) return true;    return false;  },  putAll : function(set) {    for(var e in set){      if(set[e]){        this.put(e,set[e]);      }    }  },  remove : function(key) {    var v = this.get(key);    this.clear(key);    return v;  }};var h = new Map();h.put('a',10);h.put('b',11);h.put('c',3);h.put('d',5);console.info(h.size());h.clear('a');console.info(h.containsKey('a'));console.info(h.containsKey('b'));console.info(h.size()); console.log(h.entrySet());console.log(h.keySet());console.log(h.values()); for(var i in h.entrySet()){  var obj = h.entrySet()[i];  console.log(obj.getKey() + ":" + obj.getValue());}  

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表