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

可惜,JavaScript没有。

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

对象的定义

  1. <script type="text/javascript">
  2.  
  3. /** 定义***/
  4. function JSMap() {
  5. var map_ = new Object();
  6.  
  7. /*** put **/
  8. map_.put = function(key, value) {
  9. map_[key+'_'] = value;
  10. };
  11.  
  12. /*** get **/
  13. map_.get = function(key) {
  14. return map_[key+'_'];
  15. };
  16.  
  17. /*** keyset **/
  18. map_.keyset = function() {
  19. var ret = "";
  20.  
  21. for(var p in map_) {
  22. if (typeof p == 'string' && p.substring(p.length - 1) == "_") {
  23. ret += ",";
  24. ret += p.substring(0, p.length - 1);
  25. }
  26. }
  27.  
  28. if ("" == ret) {
  29. return ret.split(",");
  30. } else {
  31. return ret.substring(1).split(",");
  32. }
  33. }
  34.  
  35. return map_;
  36. }
  37. </script>

对象的使用

  1. <script type="text/javascript">
  2. /** 应用 **/
  3. var map = new JSMap();
  4.  
  5. map.put(1, '一');
  6. map.put("Mon", '星期一');
  7.  
  8. /*
  9. alert(map.get(1));
  10. alert(map.get("Mon"));
  11. alert(map.get("mon"));
  12.  
  13. alert(map.keyset());
  14. */
  15.  
  16. /*
  17. * 遍历Map
  18. */
  19. for (var x in map.keyset()) {
  20. var key = map.keyset()[x];
  21.  
  22. alert(map.get(key));
  23. }
  24. </script>

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

  1.  
  2.  

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. com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method

    查看了网友们的错误原因, 需要进行实例化的类没有进行实例化,具体没有实例化的类会在错误信息中显示,在错误信息中搜索“Serializable”即可找到将其实现序列化可消除错误. 是在使用Dubbo提供 ...

  2. Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory

    Try this : sudo modprobe vboxnetadp ref: https://github.com/gasolin/foxbox/issues/32

  3. Linux运维基础命令笔试题--看看你会多少?

    老男孩教育linux运维就业班第一周课后学习效果能力上机大考察 (每题10分共130分,过100即可,请给出详细步骤) 1.创建目录/data/oldboy ,并且在该目录下创建文件oldboy.tx ...

  4. C# 抓取网页的img src带参数的图片链接,并下载

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  5. dpkg: error processing package libraspberrypi-doc (--configure): package is in a very bad inconsistent state;

    dpkg: error processing package libraspberrypi-doc (--configure): package is in a very bad inconsiste ...

  6. eclipse常用插件介绍

    1. 测试覆盖率工具:EclEmma https://www.cnblogs.com/Ming8006/p/5811425.html 2. 单元测试系列:如何使用JUnit+JaCoCo+EclEmm ...

  7. 【DL】物体识别与定位

    https://cloud.tencent.com/community/article/414833

  8. react解析html标签组成的字符串

    转载自:https://blog.csdn.net/tongshuo_11/article/details/61195232 var content = '<strong>content& ...

  9. mongodb 3.2.x 启动 Warning 错误处理

    [root@restore1 data1]# mongod --dbpath=/data/data1/mongodb_data/ --directoryperdb ** WARNING: You ar ...

  10. [转]Android:Layout_weight的深刻理解

    http://mobile.51cto.com/abased-375428.htm 最近写Demo,突然发现了Layout_weight这个属性,发现网上有很多关于这个属性的有意思的讨论,可是找了好多 ...