1, 通过对象方式:
var myHash = {}; myHash["deviceID"] = "HY_000001"; myHash["cameraID"] = "SX_000001"; for(key in myHash){ document.write( "key = " + key + "; value = " + myHash[key] + "<br />"); }
2,通过数组方式:
var myHash = []; myHash.push("deviceID"); myHash["deviceID"] = "HY_000001"; myHash.push("cameraID"); myHash["cameraID"] = "SX_000001"; for(key in myHash){ document.write( "key = " + key + "; value = " + myHash[key] + "<br />"); }
function getMap() { //初始化map_,给map_对象增加方法,使map_像Map var map_ = new Object(); map_.put = function(key, value) { map_[key+'_'] = value; }; map_.get = function(key) { return map_[key+'_']; }; map_.remove = function(key) { delete map_[key+'_']; }; map_.keyset = function() { var ret = ""; for(var p in map_) { if(typeof p == 'string' && p.substring(p.length-1) == "_") { ret += ","; ret += p.substring(0,p.length-1); } } if(ret == "") { return ret.split(","); } else { return ret.substring(1).split(","); } }; return map_; } var map = getMap(); map.put("395","12,21,52,89,35"); map.put("396","121111,2222221,5333332,8444449,3555555"); alert(map.get("395"));//输出:12,21,52,89,35 alert(map.keyset()); //输出:395,396
function HashMap(){ this.map = {}; } HashMap.prototype = { put : function(key , value){ this.map[key] = value; }, get : function(key){ if(this.map.hasOwnProperty(key)){ return this.map[key]; } return null; }, remove : function(key){ if(this.map.hasOwnProperty(key)){ return delete this.map[key]; } return false; }, removeAll : function(){ this.map = {}; }, keySet : function(){ var _keys = []; for(var i in this.map){ _keys.push(i); } return _keys; } }; HashMap.prototype.constructor = HashMap; var hashMap = new HashMap(); hashMap.put('key' ,'value'); hashMap.put('key1' ,'value'); console.log(hashMap.get('key')); console.log(hashMap.keySet()); console.log(hashMap.remove('key')); console.log(hashMap.keySet());
function Map() { this.elements = new Array(); //获取MAP元素个数 this.size = function() { return this.elements.length; }; //判断MAP是否为空 this.isEmpty = function() { return (this.elements.length < 1); }; //删除MAP所有元素 this.clear = function() { this.elements = new Array(); }; //向MAP中增加元素(key, value) this.put = function(_key, _value) { this.elements.push( { key : _key, value : _value }); }; //删除指定KEY的元素,成功返回True,失败返回False this.removeByKey = function(_key) { var bln = false; try { for (i = 0; i < this.elements.length; i++) { if (this.elements[i].key == _key) { this.elements.splice(i, 1); return true; } } } catch (e) { bln = false; } return bln; }; //删除指定VALUE的元素,成功返回True,失败返回False this.removeByValue = function(_value) {//removeByValueAndKey var bln = false; try { for (i = 0; i < this.elements.length; i++) { if (this.elements[i].value == _value) { this.elements.splice(i, 1); return true; } } } catch (e) { bln = false; } return bln; }; //删除指定VALUE的元素,成功返回True,失败返回False this.removeByValueAndKey = function(_key,_value) { var bln = false; try { for (i = 0; i < this.elements.length; i++) { if (this.elements[i].value == _value && this.elements[i].key == _key) { this.elements.splice(i, 1); return true; } } } catch (e) { bln = false; } return bln; }; //获取指定KEY的元素值VALUE,失败返回NULL this.get = function(_key) { try { for (i = 0; i < this.elements.length; i++) { if (this.elements[i].key == _key) { return this.elements[i].value; } } } catch (e) { return false; } return false; }; //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL this.element = function(_index) { if (_index < 0 || _index >= this.elements.length) { return null; } return this.elements[_index]; }; //判断MAP中是否含有指定KEY的元素 this.containsKey = function(_key) { var bln = false; try { for (i = 0; i < this.elements.length; i++) { if (this.elements[i].key == _key) { bln = true; } } } catch (e) { bln = false; } return bln; }; //判断MAP中是否含有指定VALUE的元素 this.containsValue = function(_value) { var bln = false; try { for (i = 0; i < this.elements.length; i++) { if (this.elements[i].value == _value) { bln = true; } } } catch (e) { bln = false; } return bln; }; //判断MAP中是否含有指定VALUE的元素 this.containsObj = function(_key,_value) { var bln = false; try { for (i = 0; i < this.elements.length; i++) { if (this.elements[i].value == _value && this.elements[i].key == _key) { bln = true; } } } catch (e) { bln = false; } return bln; }; //获取MAP中所有VALUE的数组(ARRAY) this.values = function() { var arr = new Array(); for (i = 0; i < this.elements.length; i++) { arr.push(this.elements[i].value); } return arr; }; //获取MAP中所有VALUE的数组(ARRAY) this.valuesByKey = function(_key) { var arr = new Array(); for (i = 0; i < this.elements.length; i++) { if (this.elements[i].key == _key) { arr.push(this.elements[i].value); } } return arr; }; //获取MAP中所有KEY的数组(ARRAY) this.keys = function() { var arr = new Array(); for (i = 0; i < this.elements.length; i++) { arr.push(this.elements[i].key); } return arr; }; //获取key通过value this.keysByValue = function(_value) { var arr = new Array(); for (i = 0; i < this.elements.length; i++) { if(_value == this.elements[i].value){ arr.push(this.elements[i].key); } } return arr; }; //获取MAP中所有KEY的数组(ARRAY) this.keysRemoveDuplicate = function() { var arr = new Array(); for (i = 0; i < this.elements.length; i++) { var flag = true; for(var j=0;j if(arr[j] == this.elements[i].key){ flag = false; break; } } if(flag){ arr.push(this.elements[i].key); } } return arr; };