`
smallvq123
  • 浏览: 35841 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

js 操作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的元素
* keys() 获取Map中所有key的数组(array)
* values() 获取Map中所有value的数组(array)
*
*/
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) {
if (this.containsKey(_key) == true) {
if(this.containsValue(_value)){
if(this.remove(_key) == true){
this.elements.push( {
key : _key,
value : _value
});
}
}else{
this.elements.push( {
key : _key,
value : _value
});
}
} else {
this.elements.push( {
key : _key,
value : _value
});
}
},

//删除指定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中所有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;
},

//获取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;
};
}
分享到:
评论
2 楼 zhanghq0717 2014-05-04  
挺好的
1 楼 李_俊 2011-11-09  
没有实际意义,有什么地方可以用呢?我们不写sun一样的API函数,否则客户端加载一堆js就耗掉很多流量。

相关推荐

    js操作map类UtilMap

    由于在js中不能直接操作map,所以在js中写了一个UtilMap对象,模仿java操作map的方法来操作UtilMap对象。

    JS自定义对象实现Java中Map对象功能的方法

    本文实例讲述了JS自定义对象实现Java中Map对象功能的方法。分享给大家供大家参考。具体分析如下: Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。 这里我创建一...

    javascript实现Java中的Map对象功能的实例详解

    javascript 自定义对象实现Java中的Map对象功能 Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。 这里我创建一个自定义对象,这个对象内包含一个数组来存储数据...

    threejs-map:在Threejs中嵌入Openlayers地图

    在平移、缩放、旋转操作时,保持该css3d对象在屏幕坐标的位置和大小不变,同时根据该css3d对象在Threejs world坐标中的位置计算Openlayers中地图的显示区域 最终效果等同于在Threejs的world中添加了一个地图图层

    JavaScript类数组对象转换为数组对象的方法实例分析

    本文实例分析了JavaScript类数组对象转换为数组对象的方法。分享给大家供大家参考,具体如下: 1、类数组对象: 拥有length属性,可以通过下标访问; 不具有数组所具有的方法。 2、为什么要将类数组对象转换为数组...

    Range:Javascript 的 Range 对象

    JavaScript 中的 Range 对象Range 对象允许您消除循环 (for/while/do=while) 循环。 在某种程度上,Array 对象可用于替换循环 (map,forEach),但这涉及初始化数组。 对于大循环,这可能很昂贵。 Range 允许您对一...

    在JavaScript中操作数组之map()方法的使用

    JavaScript 数组map()方法创建一个新的数组使用调用此数组中的每个元素上所提供的函数的结果。 语法 array.map(callback[, thisObject]); 下面是参数的详细信息: callback : 从当前的元素函数产生新的数组的元素...

    struts2的方式返回json到jsp页面 List,Map,Object,对象各种操作都有....MyEclipse的,导入直接看效果。

    jsp通过Ajax无刷新获取Action返回的模拟数据,然后通过struts2转化成json数据返回页面....这里面Map,List,对象等等,一些常用的操作都有。主要的代码在Action和 json.js里面。适合新手入门

    mongo-map:使用 mongoDB 聚合框架时,此助手可让您在 JS-map 中进行查找

    在使用有时您需要转换基于纯 js 映射对象的字段。 考虑你有: var map = { forThisKey : 'retrun this value' , thisKeyEqualsTo : 'something like this' , andForThisOne : 'return some other string' } ; ...

    JavaScript实现Java中Map容器的方法

    因此不允许键重复(重复了的覆盖),但允许值重复.JavaScript中的对象特性,就是不允许有相同的属性存在,和Java的Map非常的相似,所以可以利用这个特性在JavaScript中来实现Map容器,实现基本的增删查的操作. function ...

    source-map:一个用 Rust 和 Node.js 编写的快速源地图操作、生成和消费库

    从现有源映射创建要从现有源映射创建源映射,您必须首先通过从您正在运行的任何转译器请求对象版本或使用JSON.parse或任何其他 JSON 解析器解析序​​列化映射来确保它是 JS 对象。 在此之后,您可以调用函数...

    原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作

    本文实例讲述了原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作。分享给大家供大家参考,具体如下: 一、原生JS forEach()和map()遍历 共同点: ①.都是循环遍历数组中的每一项。 ②....

    JavaScript Array对象详解

    本文介绍了Js的Array 数组对象,具体内容如下 目录 1. 介绍:介绍 Array 数组对象的说明、定义方式以及属性。 2. 实例方法:介绍 Array 对象的实例方法:concat、every、filter、forEach、indexOf、join、...

    JS中数组与对象的遍历方法实例小结

    本文实例讲述了JS中数组与对象的遍历方法。分享给大家供大家参考,具体如下: 一、数组的遍历: 首先定义一个数组 arr=['snow','bran','king','nightking']; 1、for循环,需要知道数组的长度; 2、foreach,没有...

    Coffeescript中文手册

    别名和存在操作符 16 类 17 实例属性 18 静态变量 19 继承与Super 20 Mixins 21 扩展类 22 CoffeeScript惯用法 24 Each 24 Map 25 筛选 26 包含 27 属性迭代 28 Min/Max 28 多个参数 29 And/or 29 解构赋值 30 其他...

    js模仿java的Map集合详解

    List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象元素列表。List 适用于按数值索引访问元素的情形。 Map 提供了一个更通用的元素存储方法。Map 集合类用于...

    JavaScript 5th

    Array 对象内置了一些标准函数,如 indexOf(), map(), filter(), reduce()◦Object 内置了seal() 函数,防止被加入新属性,同时内置 freeze() 函数使对象变成只读状态 Object.keys() 会列出对象中所有可以枚举的...

    JavaScript内核系列

    动态性是指,在一个Javascript对象中,要为一个属性赋值,我们不必事先创建一个字段,只需要在使用的时候做赋值操作即可,如下例: Js代码 1. //定义一个对象 2. var obj = new Object(); 3. //动态创建...

    ES6新数据结构Map功能与用法示例

    JavaScript中对象的本质是键值对的集合,但是键只能是字符串。为了弥补这种缺憾,ES6带来了一种新的数据结构Map。Map也是键值对的集合,只是键不仅可以是字符串还可以是其他数据类型,比如:对象(是不是很神奇)。...

    jk64-plugin-reportmap:报告Google Map APEX插件

    该插件提供了丰富的内置声明功能,动态操作和关联的API例程,并提供了对基础Google Maps对象的访问权限,因此您可以根据需要的其他任何行为对其进行自定义。 用户可以单击任何标记以查看其弹出信息窗口。 可视化:...

Global site tag (gtag.js) - Google Analytics