JavaScript 里面本身没有map对象,用JavaScript的Array来实现Map的数据结构。

Js代码  
  1. /*
  2. * MAP对象,实现MAP功能
  3. *
  4. * 接口:
  5. * size()     获取MAP元素个数
  6. * isEmpty()    判断MAP是否为空
  7. * clear()     删除MAP所有元素
  8. * put(key, value)   向MAP中增加元素(key, value)
  9. * remove(key)    删除指定KEY的元素,成功返回True,失败返回False
  10. * get(key)    获取指定KEY的元素值VALUE,失败返回NULL
  11. * element(index)   获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
  12. * containsKey(key)  判断MAP中是否含有指定KEY的元素
  13. * containsValue(value) 判断MAP中是否含有指定VALUE的元素
  14. * values()    获取MAP中所有VALUE的数组(ARRAY)
  15. * keys()     获取MAP中所有KEY的数组(ARRAY)
  16. *
  17. * 例子:
  18. * var map = new Map();
  19. *
  20. * map.put("key", "value");
  21. * var val = map.get("key")
  22. * ……
  23. *
  24. */
  25. function Map() {
  26. this.elements = new Array();
  27. //获取MAP元素个数
  28. this.size = function() {
  29. return this.elements.length;
  30. }
  31. //判断MAP是否为空
  32. this.isEmpty = function() {
  33. return(this.elements.length < 1);
  34. }
  35. //删除MAP所有元素
  36. this.clear = function() {
  37. this.elements = new Array();
  38. }
  39. //向MAP中增加元素(key, value)
  40. this.put = function(_key, _value) {
  41. this.elements.push( {
  42. key : _key,
  43. value : _value
  44. });
  45. }
  46. //删除指定KEY的元素,成功返回True,失败返回False
  47. this.remove = function(_key) {
  48. var bln = false;
  49. try{
  50. for(i = 0; i < this.elements.length; i++) {
  51. if(this.elements[i].key == _key) {
  52. this.elements.splice(i, 1);
  53. return true;
  54. }
  55. }
  56. } catch(e) {
  57. bln = false;
  58. }
  59. return bln;
  60. }
  61. //获取指定KEY的元素值VALUE,失败返回NULL
  62. this.get = function(_key) {
  63. try{
  64. for(i = 0; i < this.elements.length; i++) {
  65. if(this.elements[i].key == _key) {
  66. return this.elements[i].value;
  67. }
  68. }
  69. } catch(e) {
  70. return null;
  71. }
  72. }
  73. //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
  74. this.element = function(_index) {
  75. if(_index < 0 || _index >= this.elements.length) {
  76. return null;
  77. }
  78. return this.elements[_index];
  79. }
  80. //判断MAP中是否含有指定KEY的元素
  81. this.containsKey = function(_key) {
  82. varbln = false;
  83. try{
  84. for(i = 0; i < this.elements.length; i++) {
  85. if(this.elements[i].key == _key) {
  86. bln = true;
  87. }
  88. }
  89. } catch(e) {
  90. bln = false;
  91. }
  92. return bln;
  93. }
  94. //判断MAP中是否含有指定VALUE的元素
  95. this.containsValue = function(_value) {
  96. var bln = false;
  97. try{
  98. for(i = 0; i < this.elements.length; i++) {
  99. if(this.elements[i].value == _value) {
  100. bln = true;
  101. }
  102. }
  103. } catch(e) {
  104. bln = false;
  105. }
  106. return bln;
  107. }
  108. //获取MAP中所有VALUE的数组(ARRAY)
  109. this.values = function() {
  110. var arr = new Array();
  111. for(i = 0; i < this.elements.length; i++) {
  112. arr.push(this.elements[i].value);
  113. }
  114. return arr;
  115. }
  116. //获取MAP中所有KEY的数组(ARRAY)
  117. this.keys = function() {
  118. var arr = new Array();
  119. for(i = 0; i < this.elements.length; i++) {
  120. arr.push(this.elements[i].key);
  121. }
  122. return arr;
  123. }
  124. }
  125. var map = new Map();
  126. map.put("key1", "value1");
  127. map.put("key2", "value2");
  128. map.put("key3", "value3");
  129. //var val = map.get("key1");
  130. //  var val = map.containsKey("key1");
  131. //  var val = map.element(2).value;
  132. var arr=map.keys();
  133. for(var i=0;i<arr.length;i++){
  134. alert(map.get(arr[i]));
  135. }
  136. //  alert(val);

转载于:https://www.cnblogs.com/ranzige/p/3830077.html

JavaScript创建Map对象(转)相关推荐

  1. JavaScript 创建类/对象的几种方式

    在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的. JS对象是一种复合类型,它允许你通过变量 ...

  2. 用javascript 创建ActiveX对象时出现:Automation server can't create object(Automation 服务器不能创建对). 错误的解决办法。

    今天,想实现在客户端读取一个EXCEL文件到一个Table中 ,所以写了如下代码: function  readExcel() ... {    var fileName = document.get ...

  3. javaScript中的map对象

    Map Map 对象保存键值对,并且能够记住键的原始插入顺序.任何值(对象或者原始值) 都可以作为一个键或一个值. 描述 一个Map对象在迭代时会根据对象中元素的插入顺序来进行 - 一个 for-of ...

  4. 【Flutter】Dart 数据类型 Map 类型 ( 创建 Map 集合 | 初始化 Map 集合 | 遍历 Map 集合 )

    文章目录 一. Dart 数据类型 Map 类型 二. Map 类型初始化并赋值 1. 创建 Map 对象同时进行初始化操作 2. 先创建 Map 对象再进行赋值 三. Map 集合遍历 1. 使用 ...

  5. TypeScript--笔记二(Map对象、联合类型、接口)

    TypeScript Map 对象 创建Map对象及初始化 Map 相关的函数与属性 联合类型 声明式 联合类型 函数参数使用 联合类型 联合类型数组 接口 示例 联合类型和接口 接口和数组 接口继承 ...

  6. Google Map API使用详解(十)——使用JavaScript创建地图详解(上)

    在网页MyTest1.html中我们已经使用了JavaScript来创建地图,下面总结一下使用JavaScript创建一个地图的核心步骤: 1.  导入地图API类库. <script src= ...

  7. 创建健壮的isArray()函数(JavaScript中判断对象类型的种种方法)

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  8. [置顶] 深入浅出Javascript(三)创建自定义对象以及属性、方法

    怎么样创建一个对象? 利用Object创建自定义对象 JavaScript能够自定义对象来扩展程序的功能,不仅如此,它还能扩展JavaScript提供的内置对象,新增内置对象的属性或方法 例如下面代码 ...

  9. QT通过JavaScript动态创建QML对象

    QT通过JavaScript动态创建QML对象 通过JavaScript动态创建QML对象 动态创建对象 动态创建组件 从QML字符串创建对象 维护动态创建的对象 动态删除对象 通过JavaScrip ...

最新文章

  1. ICPC / CCPC / Codeforces / AtCoder 单词本
  2. How those spring enable annotations work--转
  3. java was datasource_使用Spring Boot配置Druid时dataSource无法被autowired
  4. java读取文件的方法是_Java读取文件方法大全
  5. Posterior decompression
  6. JUC多线程:synchronized锁机制原理 与 Lock锁机制
  7. 【转载】intellij idea如何将web项目打成war包
  8. PostgreSQL中的pg_hba.conf
  9. opencv 霍夫变换检测直线和圆
  10. python 表格模块 prettyTable 简单使用
  11. 爬虫(二)—解析真实网页(猫途鹰)
  12. 配置微信公众号之公众号绑定小程序
  13. Sniffer数据报文解码详解
  14. 一份超详细的Spring4常用知识清单!
  15. 若A、B为同阶矩阵且A、B均可逆,则AB亦可逆
  16. 中止执行后超过2年_失信被执行人怎么撤销 超过两年会撤销吗
  17. 解决redis缓存穿透、redis缓存雪崩问题
  18. emq无法启用mysql_EMQ开启mysql认证
  19. Windows环境下查看进程和杀死进程的命令
  20. 极光推送demo下载运行错误

热门文章

  1. port常用和不常用端口一览表
  2. 万能make file
  3. PHP生成CSV之内部换行
  4. WebVie打开woffice文档
  5. 《智能路由器开发指南》——2.3 使用VirtualBox部署
  6. linux命令:du,df用法说明
  7. 让底部始终在浏览器底部
  8. iOS开发之简单画板实现
  9. lintcode 滑动窗口的最大值(双端队列)
  10. 将整数拆分为勾股数的问题解决