很多编程语言中都有类似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. 导入Maven项目后,Eclipse提示“Missing artifact ”类的错误

    导入Maven项目后,Eclipse提示“Missing artifact ”类的错误 标签: Maven Missing art 2016-08-15 16:05 679人阅读 评论(0) 收藏 举 ...

  2. C# Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005

    环境说明: Win2008 R2(中文版) x64 .IIS 7.0 功能说明:上传Excel到服务器,并在服务器端读取Excel中的数据: 异常信息:Retrieving the COM class ...

  3. linux rinetd 端口转发部署

    linux下简单好用的工具rinetd,实现端口映射/转发/重定向 Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.Rinetd是单一过程的服务器,它 ...

  4. com.panie 项目开发随笔_爬虫初识(2017.2.7)

    (一) 本章打算研究一下爬虫.我想用爬虫简单的爬取几篇文章,以及收集一下常用网站的信息. (二) 以开源项目 JAVA爬虫 WebCollector 为源码研究.在此基础上改为适合自己项目的代码. ( ...

  5. oracle转mysql总结

    oracle转mysql总结 ares-sdk初始开发测试使用的是oracle数据库,由于宁波通商的特殊需要,必须把数据库环境从oracle转向mysql. 现对转换过程中出现的问题及经验总结如下: ...

  6. MyBatis的深入原理分析之1-架构设计以及实例分析

    MyBatis是目前非常流行的ORM框架,它的功能很强大,然而其实现却比较简单.优雅.本文主要讲述MyBatis的架构设计思路,并且讨论MyBatis的几个核心部件,然后结合一个select查询实例, ...

  7. jquery animate动画持续运动

    function fingers(){ $(".box01 .fingers").animate({"width":"7.5rem",&qu ...

  8. Android Call(打电话)的基本知识详解

  9. IE8 AJAX 不能正常工作 解决办法

    function crossDomainAjax(url, successCallback) { // IE8 & 9 only Cross domain JSON GET request i ...

  10. 第四章 TCP粘包/拆包问题的解决之道---4.2--- 未考虑TCP粘包导致功能异常案例

    4.2 未考虑TCP粘包导致功能异常案例 如果代码没有考虑粘包/拆包问题,往往会出现解码错位或者错误,导致程序不能正常工作. 4.2.1 TimeServer 的改造 Class : TimeServ ...