很多编程语言中都有类似Map这种 键-值对 的数据结构。

可惜,JavaScript没有。

幸运的是,可以自己构建一个Map对象。

对象的定义

 <script type="text/javascript">

     /** 定义***/
function JSMap() {
var map_ = new Object(); /*** put **/
map_.put = function(key, value) {
map_[key+'_'] = value;
}; /*** get **/
map_.get = function(key) {
return map_[key+'_'];
}; /*** keyset **/
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_;
}
</script>

对象的使用

 <script type="text/javascript">
/** 应用 **/
var map = new JSMap(); map.put(1, '一');
map.put("Mon", '星期一'); /*
alert(map.get(1));
alert(map.get("Mon"));
alert(map.get("mon")); alert(map.keyset());
*/ /*
* 遍历Map
*/
for (var x in map.keyset()) {
var key = map.keyset()[x]; alert(map.get(key));
}
</script>

详细代码可参考:https://github.com/YoungZHU/CommonJavaScript/blob/master/aboutMap.html

 

JavaScript 中的 Map的更多相关文章

  1. 由实现JavaScript中的Map想到的

    项目中要用到JavaScript中的Map数据类型,它不像JDK那样有自带的,怎么办?搜了找到一个不错的(http://darkmasky.iteye.com/blog/454749).用这个可以满足 ...

  2. ES6新特性:Javascript中的Map和WeakMap对象

    Map对象 Map对象是一种有对应 键/值 对的对象, JS的Object也是 键/值 对的对象 : ES6中Map相对于Object对象有几个区别: 1:Object对象有原型, 也就是说他有默认的 ...

  3. JavaScript中的Map

    1.首先,在新版本的浏览器中,已经实现了对Map的原生支持:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Glob ...

  4. JavaScript中数组map()方法

    JavaScript 数组map()方法创建一个新的数组使用调用此数组中的每个元素上所提供的函数的结果.语法 ? 1 array.map(callback[, thisObject]); 下面是参数的 ...

  5. JavaScript中的Map和Set

    JavaScript的默认对象表示方法{}可以视为其他语言中的Map或者Dictionary的数据结构,即一组键值对. 但是JavaScript的对象有个小问题,就是键必须是字符串,但实际上Numbe ...

  6. JavaScript中的map方法

    假设有一个函数f(x)=x²;作用在一个数组[1,2,3,4,5,6,7,8,9],通常我们会用遍历的方法来实现. function f(x){ return x * x; } var arr = [ ...

  7. javascript中使用Map

    mis.comm.js.Map = function() { this.elements = new Array(); //获取MAP元素个数 this.size = function() { ret ...

  8. javascript中的map和reduce

    今天在看“廖雪峰官方网站”的js教程时,看到了map和reduce.其中有一个练习题是:不使用js内置的parseInt()函数,利用map和reduce操作实现一个string2int()函数(先将 ...

  9. JavaScript中的Map、Set及其遍历

    Map Map是一组键值对的结构,具有极快的查找速度. Map的定义. //空map设值key-value var m = new Map(); m.set("XiaoMing", ...

随机推荐

  1. MongoDB多文档查询

    db.getCollection('transactionCompensation').find( { "$and":[ { "status":{ " ...

  2. 错误 未能找到类型或命名空间名称"xxxxxx"的真正原因

    今天又被这问题撞上了,结果神奇般的解决了 谷歌了很久都没有找到真正有用的解决方案,所以在这儿写下,让更多的人看到 最根本的原因其实就是引用的问题,引用错了,然后VS在这上面提示又不够智能,所以大家被坑 ...

  3. quake3中求1/sqrt(x)的算法源代码

    quake3中求1/sqrt(x)的算法源代码如下(未作任何修改): float Q_rsqrt( float number ) { long i; float x2, y; const float ...

  4. Nginx防盗链 Nginx访问控制 Nginx解析php相关配置 Nginx代理

     

  5. css 设置背景图片铺满固定不动

    #page{ position: relative; width: 100%; height: 100%; background-image:url(../img/bg.JPG); backgroun ...

  6. 使用 ML Pipeline 构建机器学习工作流

    http://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice5/

  7. cordova ios and ios8

    ios8发布后,一些用cordova编写的app会碰到问题,总的来说,cordova官方称是完全支持ios8的,而且由于ios8推出的WKWebView存在问题并没能很好的解决(看原文),仍旧用了UI ...

  8. Android Material Design控件学习(二)——NavigationView的学习和使用

    前言 上次我们学习了TabLayout的用法,今天我们继续学习MaterialDesign(简称MD)控件--NavigationView. 正如其名,NavigationView,导航View.一般 ...

  9. 用Fiddler查看 Android/iOS 网络请求

    1.下载fiddler,尽量到官方网站找最新的版本 我这里也放了一个:http://files.cnblogs.com/xiaokang088/fiddler4setup.zip 2. 打开Fiddl ...

  10. 【乐呵一下】WINDOWS有个非常低级的错误!

    该错误来自微软windows附带的计算器(开始附件计算器). 1. 当你尝试用9216除以96并按下=按钮时,计算器竟然没有反应!!! 而9216除以97,98却正常. 2. 还有一个错误,当你尝试用 ...