JavaScript Map 实现
2016-07-05 20:10
316 查看
//定义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; else return 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) + '%'; }
相关文章推荐
- jsp学习总结
- 【探索】机器指令翻译成 JavaScript
- JavaScript进阶学习 CodeWars 日记 求两个字符串的混合
- 获得json数据
- 图片下载和json下载(sd卡)
- js解析xml文件,实现省市区三级联动
- Three.JS(1)直线
- OpenLayers 2 源码解读(2) Class.js
- ExtJs5.1.1使用中问题集锦
- Javascript 面向对象编程封装问题
- js中clearInterval无效,以及setInterval中断后重新执行
- js中json例子
- 正则表达式的部分替换 $1~$99
- javascript 创建对象的几种方式
- 总结javascript面向对象编程7种对象模型
- js中用prototype实现继承
- javascript中parseInt函数的用法
- [Effective JavaScript 笔记]第57条:使用结构类型设计灵活的接口
- js找出数组 arr 中重复出现过的元素
- 复选框的全选和全部选