Java中的Map是一個很實用的集合,習慣了使用Java中的Map,換別的語言沒Map時感覺很不爽,以前寫Flex AS代碼時碰到過用要用Map的情況,不過AS其實有Dictionary字典類可以代替Java中的Map,同時也可以使用對象的屬性-值形式來實現Map,在這裡JS的Map實現就是使用的對象的屬性-值。實現很簡單,這裡只是為了讓Java程式員輕鬆的編寫JS代碼。
//constructionfunction Map() { this.obj = new Object();};//add a key-valueMap.prototype.put = function(key, value) { this.obj[key] = value;};//get a value by a key,if don't exist,return undefinedMap.prototype.get = function(key) { return this.obj[key];};//remove a value by a keyMap.prototype.remove = function(key) { if(this.get(key)==undefined) { return; } delete this.obj[key];};//clear the mapMap.prototype.clear = function() { this.obj = new Object();};//get the sizeMap.prototype.size = function() { var ary = this.keys(); return ary.length;};//get all keysMap.prototype.keys = function() { var ary = new Array(); for(var temp in this.obj) { ary.push(temp); } return ary;};//get all valuesMap.prototype.values = function() { var ary = new Array(); for(var temp in this.obj) { ary.push(this.obj[temp]); } return ary;};