//定义map
function Map() {this.container = {};
}
//将key-value放入map中
Map.prototype.put = function(key, value) {try {if (key != null && key != "")this.container[key] = value;} catch (e) {return e;}
};//根据key从map中取出对应的value
Map.prototype.get = function(key) {try {return this.container[key];} catch (e) {return e;}
};//判断map中是否包含指定的key
Map.prototype.containsKey = function(key) {try {for ( var p in this.container) {if (p == key)return true;}return false;} catch (e) {return e;}}//判断map中是否包含指定的value
Map.prototype.containsValue = function(value) {try {for ( var p in this.container) {if (this.container[p] === value)return true;}return false;} catch (e) {return e;}
};//删除map中指定的key
Map.prototype.remove = function(key) {try {delete this.container[key];} catch (e) {return e;}
};//清空map
Map.prototype.clear = function() {try {delete this.container;this.container = {};} catch (e) {return e;}
};//判断map是否为空
Map.prototype.isEmpty = function() {if (this.keySet().length == 0)return true;elsereturn false;
};//获取map的大小
Map.prototype.size = function() {return this.keySet().length;
}//返回map中的key值数组
Map.prototype.keySet = function() {var keys = new Array();for ( var p in this.container) {keys.push(p);}return keys;
}//返回map中的values值数组
Map.prototype.values = function() {var valuesArray = new Array();var keys = this.keySet();for (var i = 0; i < keys.length; i++) {valuesArray.push(this.container[keys[i]]);}return valuesArray;
}//返回 map 中的 entrySet 对象
Map.prototype.entrySet = function() {var array = new Array();var keys = this.keySet();for (var i = 0; i < keys.length; i++) {array.push(keys[i],this.container[keys[i]]);}return array;
}//返回 map 中的 value值的和(当值是 Nunmber 类型时有效)
Map.prototype.sumValues = function() {var values = this.values();var result = 0;for (var i = 0; i < values.length; i++) {result += Number(values[i]);}return result;
}///计算两个整数的百分比值
function toPercent(num, total){num = parseFloat(num); total = parseFloat(total); if (isNaN(num) || isNaN(total)) { return "0"; } return total <= 0 ? "0%" : (Math.round(num / total * 10000) / 100.00 + "%");
//    return (Math.round(this * 10000)/100).toFixed(2) + '%';
}

JavaScript实现map相关推荐

  1. python的array如何使用map_你应该了解的JavaScript Array.map()五种用途小结

    前言 从经典的 for 循环到 forEach() 方法,用于迭代数据集合的各种技术和方法比比皆是.但是现在比较流行的方法是 .map() 方法. .map() 通过指定函数调用一个数组中每一项元素, ...

  2. js遍历map javaScript遍历map

    原文地址为: js遍历map javaScript遍历map var map = {"name" : "华仔","realname":&qu ...

  3. java过滤map去除重复数据,javascript模拟map输出与去除重复项的方法

    本文实例讲述了javascript模拟map输出与去除重复项的方法.分享给大家供大家参考.具体方法如下: 1.Javascriptmap输出 function Map(){ // private va ...

  4. JavaScript创建Map对象(转)

    JavaScript 里面本身没有map对象,用JavaScript的Array来实现Map的数据结构. Js代码   /* * MAP对象,实现MAP功能 * * 接口: * size()      ...

  5. JavaScript中map函数和filter的简单举例

    JavaScript的数组迭代器函数map和filter,可以遍历数组时产生新的数组,和python的map函数很类似 1> filter是满足条件的留下,是对原数组的过滤: 2> map ...

  6. JavaScript中Map的应用及Map中的bug

    今天一同事让我解决一个关于JS的问题,想了想,还是用Map解决比较方面,先来看看JS中是如何定义Map的 map.js function Map() { var struct = function(k ...

  7. JavaScript Array --map()、filter()、reduce()、forEach()函数的使用

    题目: 1.得到 3000 到 3500 之内工资的人. 2.增加一个年龄的字段,并且计算其年龄. 3.打印出每个人的所在城市 4.计算所有人的工资的总和. 测试数据: function getDat ...

  8. javaScript的Map数据类型

    一.Map数据类型产生的背景 JavaScript 天生就有缺陷 34岁的系统程序员Brendan Eich只用10天时间就把Javascript设计出来了.(多肽语言) 所以javaScript自然 ...

  9. javascript清除map所占内存_【原创.54期】 JavaScript的V8引擎初探

    本文主要就下面三块内容展开 栈和堆空间 垃圾回收 解释器和编译器 一.栈空间和堆空间 先回顾下基本知识 1.静态语言就是强类型?二者的关系 (1-1)静态语言, 使用前 要确定数据类型 (1-2)动态 ...

  10. javascript 自定义Map

    迁移时间:2017年5月25日08:24:19 Author:Marydon 三.自定义Map数据格式 需特别注意的是: js中没有像java中的Map数据格式,js自带的map()方法用于:返回一个 ...

最新文章

  1. Android开发工具GenyMotion安装和使用方法
  2. python作用域链_具有动态特性的Python嵌套作用域
  3. mysql 查询包含1或者2_Mysql:同一个表上有2个不同的查询,包含count和group by
  4. 52 - 算法 - LeetCode 28 - 实现 strStr() -kmp
  5. Linux下Ubuntu关闭触摸板(TinkPad)
  6. get------引用接口
  7. Visual Studio 2019密钥
  8. 官宣:微信可以转账到QQ上了。微信今日新增全新表情包
  9. 从零开发微信公众号(PC)
  10. 达摩达兰论估价pdf_应用公司理财PDF下载_(美)阿斯瓦斯・达摩达兰_机械工业出版社_会计_管理_零度图书网...
  11. Thinkpad E430c 16GB内存安装成功
  12. 第十二周助教工作总结——NWNU李泓毅
  13. 越客汽车美容管理软件
  14. 人力资源总监面试时是怎么想的?
  15. 出场、入场动画大全,基于NineOldAndroids轻松实现动画效果
  16. sql: expected 0 arguments, got 1
  17. C++错误解决:double free or corruption (out): 0x00000000011abe70 ***
  18. 基于JAVA的公交调度系统
  19. java使用easypoi导入,导出
  20. crontab巨坑问题

热门文章

  1. paip.提升用户体验-----c++ gcc 命令在notepad++扩展中的配置..
  2. C: 与Atom相爱相生
  3. 博格和他的先锋集团创业史(2):我觉得自己在天堂
  4. 【细胞分割】基于matlab GUI阈值+边缘+形态学+种子点+主动轮廓图像分割【含Matlab源码 1477期】
  5. 【行为识别】基于matlab差影法三维人体姿态行为识别【含Matlab源码 277期】
  6. 【元胞自动机】基于matlab元胞自动机城市规划【含Matlab源码 125期】
  7. 【数字信号调制】基于matlab GUI AM+DSB+SSB+ASK+FSK+PSK调制解调【含Matlab源码 058期】
  8. 让计算机桌面更加美丽课件,让计算机桌面更加美丽_1.doc
  9. break用于什么场景python_break语句陷入循环
  10. 例2.11 FatMouse' Trade - 九度教程第21题(贪心算法)