javascript 實(shí)現(xiàn)map集合
前幾天項(xiàng)目上想用map集合一樣的東西,簡(jiǎn)單拿對(duì)象拼了一下子,今天閑的慌實(shí)現(xiàn)一下
大家不要見(jiàn)笑
代碼
var Map = function (){
/************基礎(chǔ)變量**************/
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;
};
};
/************擴(kuò)展方法**************/
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());
}
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之集合(Set)
- js中通過(guò)getElementsByName訪問(wèn)name集合對(duì)象的方法
- JSON--List集合轉(zhuǎn)換成JSON對(duì)象詳解
- jquery遍歷json對(duì)象集合詳解
- 詳談js遍歷集合(Array,Map,Set)
- jQuery學(xué)習(xí)7 操作JavaScript對(duì)象和集合的函數(shù)
- JS實(shí)現(xiàn)的集合去重,交集,并集,差集功能示例
- Javascript實(shí)現(xiàn)的Map集合工具類(lèi)完整實(shí)例
- JSON 與對(duì)象、集合之間的轉(zhuǎn)換的示例
- JS實(shí)現(xiàn)集合的交集、補(bǔ)集、差集、去重運(yùn)算示例【ES5與ES6寫(xiě)法】
- JS中的算法與數(shù)據(jù)結(jié)構(gòu)之集合(Set)實(shí)例詳解
相關(guān)文章
動(dòng)態(tài)添加刪除表格行的js實(shí)現(xiàn)代碼
本篇文章主要是對(duì)動(dòng)態(tài)添加刪除表格行的js實(shí)現(xiàn)代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02
千分位數(shù)字格式化(用逗號(hào)隔開(kāi) 代碼已做了修改 支持0-9位逗號(hào)隔開(kāi))的JS代碼
這篇文章主要介紹了千分位數(shù)字格式化的JS代碼,有需要的朋友可以參考一下2013-12-12
javascript刪除一個(gè)html元素節(jié)點(diǎn)的方法
這篇文章主要介紹了javascript刪除一個(gè)html元素節(jié)點(diǎn)的方法,可通過(guò)獲取父節(jié)點(diǎn)再查找并刪除子節(jié)點(diǎn)來(lái)實(shí)現(xiàn)該功能,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12
JS實(shí)現(xiàn)的通用表單驗(yàn)證插件完整實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)的通用表單驗(yàn)證插件,可針對(duì)常見(jiàn)的日期、密碼、姓名等進(jìn)行驗(yàn)證并給出提示信息,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-08-08
JS 精確統(tǒng)計(jì)網(wǎng)站訪問(wèn)量的實(shí)例代碼
這篇文章介紹了JS精確統(tǒng)計(jì)網(wǎng)站訪問(wèn)量的實(shí)例代碼,有需要的朋友可以參考一下2013-07-07
JavaScript實(shí)現(xiàn)元素滾動(dòng)條到達(dá)一定位置循環(huán)追加內(nèi)容
下面小編就為大家分享一篇JavaScript實(shí)現(xiàn)元素滾動(dòng)條到達(dá)一定位置循環(huán)追加內(nèi)容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-12-12
JS實(shí)現(xiàn)自動(dòng)切換文字的導(dǎo)航效果代碼
這篇文章主要介紹了JS實(shí)現(xiàn)自動(dòng)切換文字的導(dǎo)航效果代碼,涉及javascript動(dòng)態(tài)切換頁(yè)面樣式的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08

