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集合工具類完整實(shí)例
- JSON 與對(duì)象、集合之間的轉(zhuǎn)換的示例
- JS實(shí)現(xiàn)集合的交集、補(bǔ)集、差集、去重運(yùn)算示例【ES5與ES6寫法】
- 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-12javascript刪除一個(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-12JS實(shí)現(xiàn)的通用表單驗(yàn)證插件完整實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)的通用表單驗(yàn)證插件,可針對(duì)常見(jiàn)的日期、密碼、姓名等進(jìn)行驗(yàn)證并給出提示信息,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-08-08JS 精確統(tǒng)計(jì)網(wǎng)站訪問(wèn)量的實(shí)例代碼
這篇文章介紹了JS精確統(tǒng)計(jì)網(wǎng)站訪問(wèn)量的實(shí)例代碼,有需要的朋友可以參考一下2013-07-07JavaScript實(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-12JS實(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