javascript 實現(xiàn)map集合
更新時間:2015年04月03日 16:42:00 投稿:hebedich
本文給大家分享的是個人項目中需要的一個小功能,當時經(jīng)過一番度娘才實現(xiàn),現(xiàn)在從項目中拿出來,分享給大家,需要的小伙伴快來參考下吧。
前幾天項目上想用map集合一樣的東西,簡單拿對象拼了一下子,今天閑的慌實現(xiàn)一下
大家不要見笑
代碼
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());
}
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
您可能感興趣的文章:
- JavaScript數(shù)據(jù)結(jié)構與算法之集合(Set)
- js中通過getElementsByName訪問name集合對象的方法
- JSON--List集合轉(zhuǎn)換成JSON對象詳解
- jquery遍歷json對象集合詳解
- 詳談js遍歷集合(Array,Map,Set)
- jQuery學習7 操作JavaScript對象和集合的函數(shù)
- JS實現(xiàn)的集合去重,交集,并集,差集功能示例
- Javascript實現(xiàn)的Map集合工具類完整實例
- JSON 與對象、集合之間的轉(zhuǎn)換的示例
- JS實現(xiàn)集合的交集、補集、差集、去重運算示例【ES5與ES6寫法】
- JS中的算法與數(shù)據(jù)結(jié)構之集合(Set)實例詳解
相關文章
千分位數(shù)字格式化(用逗號隔開 代碼已做了修改 支持0-9位逗號隔開)的JS代碼
這篇文章主要介紹了千分位數(shù)字格式化的JS代碼,有需要的朋友可以參考一下2013-12-12
javascript刪除一個html元素節(jié)點的方法
這篇文章主要介紹了javascript刪除一個html元素節(jié)點的方法,可通過獲取父節(jié)點再查找并刪除子節(jié)點來實現(xiàn)該功能,具有一定的參考借鑒價值,需要的朋友可以參考下2014-12-12
JavaScript實現(xiàn)元素滾動條到達一定位置循環(huán)追加內(nèi)容
下面小編就為大家分享一篇JavaScript實現(xiàn)元素滾動條到達一定位置循環(huán)追加內(nèi)容,具有很好的參考價值,希望對大家有所幫助2017-12-12

