JavaScript

超轻量级php框架startmvc

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

更新时间:2020-06-17 04:36 作者:startmvc
 js中没有map这个类,只能自己写一个。以下map.js和map-util.js都是自定义的map,任选其一

 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  的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!