Javacript中自定义的map.js 的方法

Javacript中自定义的map.js  的方法

 js中没有map这个类,只能自己写一个。以下map.js和map-util.js都是自定义的map,任选其一就可以。你可以用它来像java里new Map()和put()、remove()、get()等方法。

map.js:

function Map() {     var struct = function(key, value) {       this.key = key;       this.value = value;     }     var put = function(key, value){       for (var i = 0; i < this.arr.length; i++) {         if ( this.arr[i].key === key ) {           this.arr[i].value = value;           return;         }       }       this.arr[this.arr.length] = new struct(key, value);     }     var get = function(key) {       for (var i = 0; i < this.arr.length; i++) {         if ( this.arr[i].key === key ) {           return this.arr[i].value;         }       }       return null;     }     var remove = function(key) {       var v;       for (var i = 0; i < this.arr.length; i++) {         v = this.arr.pop();         if ( v.key === key ) {           continue;         }         this.arr.unshift(v);       }     }     var size = function() {       return this.arr.length;     }     var isEmpty = function() {       return this.arr.length <= 0;     }     this.arr = new Array();     this.get = get;     this.put = put;     this.remove = remove;     this.size = size;     this.isEmpty = isEmpty;   }   

map-util.js:

function Map() {   this.elements = new Array();   var i;   //获取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     });   };   this.putFirst = function(_key, _value){     var tempList = this.elements;     this.elements = new Array();     this.elements.push( {       key : _key,       value : _value     });     for(var i=0;i<tempList.length;i++){       this.elements.push(         tempList[i]       );     }   }   //删除指定KEY的元素,成功返回True,失败返回False   this.remove = 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;   };   //获取指定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 null;     }   };   //获取指定索引的元素(使用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的数组(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中所有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;   }; } 

总结

以上所述是小编给大家介绍的 Javacript中自定义的map.js  的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

tag:方法自定义电脑软件Javacriptjs

相关内容