javascript 實現(xiàn)map集合
更新時間:2015年04月03日 16:42:00 投稿:hebedich
本文給大家分享的是個人項目中需要的一個小功能,當時經(jīng)過一番度娘才實現(xiàn),現(xiàn)在從項目中拿出來,分享給大家,需要的小伙伴快來參考下吧。
前幾天項目上想用map集合一樣的東西,簡單拿對象拼了一下子,今天閑的慌實現(xià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; }; }; /************擴展方法**************/ 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é)構(gòu)與算法之集合(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é)構(gòu)之集合(Set)實例詳解
相關(guān)文章
千分位數(shù)字格式化(用逗號隔開 代碼已做了修改 支持0-9位逗號隔開)的JS代碼
這篇文章主要介紹了千分位數(shù)字格式化的JS代碼,有需要的朋友可以參考一下2013-12-12javascript刪除一個html元素節(jié)點的方法
這篇文章主要介紹了javascript刪除一個html元素節(jié)點的方法,可通過獲取父節(jié)點再查找并刪除子節(jié)點來實現(xiàn)該功能,具有一定的參考借鑒價值,需要的朋友可以參考下2014-12-12JavaScript實現(xiàn)元素滾動條到達一定位置循環(huán)追加內(nèi)容
下面小編就為大家分享一篇JavaScript實現(xiàn)元素滾動條到達一定位置循環(huán)追加內(nèi)容,具有很好的參考價值,希望對大家有所幫助2017-12-12