萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> javascript 實現map集合

javascript 實現map集合

 代碼

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 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()); } 
copyright © 萬盛學電腦網 all rights reserved