javascript实现简单的Map示例介绍

 本文为大家介绍下使用javascript实现简单的Map,可以对map进行获取、判断、删除、增加等等,感兴趣的朋友可以了解下

 代码如下:
/* 
* MAP对象,实现MAP功能 

* 接口: 
* size() 获取MAP元素个数 
* isEmpty() 判断MAP是否为空 
* clear() 删除MAP所有元素 
* put(key, value) 向MAP中增加元素(key, value) 
* remove(key) 删除指定KEY的元素,成功返回True,失败返回False 
* get(key) 获取指定KEY的元素值VALUE,失败返回NULL 
* element(index) 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL 
* containsKey(key) 判断MAP中是否含有指定KEY的元素 
* containsValue(value) 判断MAP中是否含有指定VALUE的元素 
* values() 获取MAP中所有VALUE的数组(ARRAY) 
* keys() 获取MAP中所有KEY的数组(ARRAY) 

* 例子: 
* var map = new Map(); 

* map.put("key", "value"); 
* var val = map.get("key") 
* …… 

*/ 
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<arr.length;j++){ 
if(arr[j] == this.elements[i].key){ 
flag = false; 
break; 


if(flag){ 
arr.push(this.elements[i].key); 


return arr; 
}; 

 

时间: 2024-12-30 11:37:51

javascript实现简单的Map示例介绍的相关文章

javascript实现简单的Map示例介绍_javascript技巧

复制代码 代码如下: /* * MAP对象,实现MAP功能 * * 接口: * size() 获取MAP元素个数 * isEmpty() 判断MAP是否为空 * clear() 删除MAP所有元素 * put(key, value) 向MAP中增加元素(key, value) * remove(key) 删除指定KEY的元素,成功返回True,失败返回False * get(key) 获取指定KEY的元素值VALUE,失败返回NULL * element(index) 获取指定索引的元素(使用e

javascript中正则表达式反向引用示例介绍

 这篇文章主要介绍了javascript中正则表达式反向引用,需要的朋友可以参考下 最近遇到一个需求,传入一个字符串,每三个字符插入一个空格    例:    传入abcd1234    输出 abc d12 34    思考了一下,准备写一个函数如下   代码如下: function appendSpace(s)  {  var length = s.length;  var result = "";  var last = 0;  for(var i = 3;i<=lengt

JavaScript+CSS控制打印格式示例介绍

 1. 用media="print"的css来控制要打印的文件testPrint.html中引用media为print的样式,表示打印时该样式才起作用  代码如下: <link href="/style/print.css" rel="stylesheet" type="text/css" media="print">    /style/print.css文件   代码如下: .noprint

JavaScript中for-in遍历方式示例介绍

 for-in遍历方式的循环计数器是字符串类型,遍历对象时为对象属性/方法名,遍历数组时为数组元素下标索引,与普通的for循环不同,需要的朋友可以参考下 摘要:for-in遍历方式的循环计数器是字符串类型,遍历对象时为对象属性/方法名,遍历数组时为数组元素下标索引,与普通的for循环不同,for-in会将继承的属性/方法列出,这一点在使用时需要特别关注.    除了传统的for循环,JavaScript为遍历操作定义了for-in方式,根据数据源的不同,在使用时存在差异.  (1)遍历对象: 

JavaScript中for-in遍历方式示例介绍_javascript技巧

摘要:for-in遍历方式的循环计数器是字符串类型,遍历对象时为对象属性/方法名,遍历数组时为数组元素下标索引,与普通的for循环不同,for-in会将继承的属性/方法列出,这一点在使用时需要特别关注. 除了传统的for循环,JavaScript为遍历操作定义了for-in方式,根据数据源的不同,在使用时存在差异. (1)遍历对象: 复制代码 代码如下: var fish = { head : 1, tail : 1, } for(var prop in fish) { console.log(

JavaScript+CSS控制打印格式示例介绍_javascript技巧

1. 用media="print"的css来控制要打印的文件testPrint.html中引用media为print的样式,表示打印时该样式才起作用 复制代码 代码如下: <link href="/style/print.css" rel="stylesheet" type="text/css" media="print"> /style/print.css文件 复制代码 代码如下: .nopr

javascript:void(0)的作用示例介绍

在做页面时,如果想做一个链接点击后不做任何事情,或者响应点击而完成其他事情,我们可以使用javascript:void(0),下面是具体的使用方法,感兴趣的朋友可以参考下 在做页面时,如果想做一个链接点击后不做任何事情,或者响应点击而完成其他事情,可以设置其属性 href = "#",但是,这样会有一个问题,就是当页面有滚动条时,点击后会返回到页面顶端,或者是跳到设置的锚点的地方,用户体验不好. 通常的用法为: 复制代码 代码如下: <a href="javascrip

javascript 中that的含义示例介绍_基础知识

你可能会发现别人写的代码中有这么一句:var that = this;,这代表什么意思呢? 在javascript中,this代表的是当前对象. var that=this就是将当前的this对象复制一份到that变量中.这样做有什么意义呢? 复制代码 代码如下: $('#zhetenga').click(function(){ //this是被点击的#zhetenga var that = this; $('.zhetenga').each(function(){ //this是.zheten

javascript中正则表达式反向引用示例介绍_正则表达式

最近遇到一个需求,传入一个字符串,每三个字符插入一个空格 例: 传入abcd1234 输出 abc d12 34 思考了一下,准备写一个函数如下 复制代码 代码如下: function appendSpace(s) { var length = s.length; var result = ""; var last = 0; for(var i = 3;i<=length;i=i+3,last = last+3) { result = result+s.substring(i-3