JavaScript Map 实现
//定义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) + '%';
}
JavaScript Map 实现的更多相关文章
- JavaScript Map 和 Set
结论 Map:存放键值对,区别于 Object,键可以是任何值. Set:存放不重复的值 Map 存储键值对,读取时与插入顺序一致. var map = new Map([[1, "1&qu ...
- js javascript map函数去重功能的使用实例
js javascript map函数去重功能的使用实例 先上一个实战例子代码 var map = new Map(); for(var i=0; i<=9; i++){ map.set(i,i ...
- 一个简单的JavaScript Map
用js写了一个Map,带遍历功能,请大家点评下啦. //map.js Array.prototype.remove = function(s) { for (var i = 0; i < thi ...
- Arcgis for javascript map操作addLayer具体解释
本节的内容非常easy.说说Arcgis for Javascript里面map对象的addLayer方法.在for JS的API中,addLayer方法有两种.例如以下图: watermark/2/ ...
- javascript Map和Set
Map和Set JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对. 但是JavaScript的对象有个小问题,就是键必须是字符串.但实 ...
- Arcgis for javascript map操作addLayer详解
本节的内容很简单,说说Arcgis for Javascript里面map对象的addLayer方法.在for JS的API中,addLayer方法有两种,如下图: addLayer方法 在addLa ...
- JavaScript Map 和 Object 的区别
不同点 Key filed 在 Object 中, key 必须是简单数据类型(整数,字符串或者是 symbol),而在 Map 中则可以是 JavaScript 支持的所有数据类型,也就是说可以用一 ...
- javascript map forEach filter some every在购物车中的实战演练区分用法
1.map forEach 1.map 循环遍历每一项,返回一个新的数组 例: 购物车商品小计: //购物车 var cart=[ {"id":101,"name&quo ...
- JavaScript --- Map集合结构详解
Map 对象保存键值对.任何值(对象或者原始值) 都可以作为一个键或一个值. 语法 new Map([iterable]) 参数 iterable Iterable 可以是一个数组或者其他 itera ...
随机推荐
- Memory Allocation with COBOL
Generally, the use of a table/array (Static Memory) is most common in COBOL modules in an applicatio ...
- 设计模式-外观模式(Facade Pattern)
本文由@呆代待殆原创,转载请注明出处:http://www.cnblogs.com/coffeeSS/ 外观模式简介 外观模式的作用用一句话说就是简化接口,举个例子楼主每次编程的时候都要点开IDE.点 ...
- [LOJ6179]Pyh的求和
首先有一个等式是$\varphi(ab)=\frac{\varphi(a)\varphi(b)d}{\varphi(d)}$,其中$d=(a,b)$,这个比较好证,直接按展开式计算可得$\varphi ...
- 【分类讨论】Codeforces Round #407 (Div. 2) D. Weird journey
考虑这个二元组中有一者是自环,则必然合法. 考虑这两条边都不是自环,如果它们不相邻,则不合法,否则合法. 坑的情况是,如果它是一张完整的图+一些离散的点,则会有解,不要因为图不连通,就误判成无解. # ...
- [USACO13NOV]No Change
题目大意: 你有k(k<=16)个硬币,每个硬币都有自己的面值. 现在你要给n件商品付钱,每件商品也有自己的价格. 然而老板是个奸商,他绝对不会给你找钱. 你每次付钱只能用一个硬币,但是你可以一 ...
- 输入sql语句,将结果写入到xml文件
import java.io.FileOutputStream; import java.sql.Connection; import java.sql.DriverManager; import j ...
- JDK源码学习笔记——TreeMap及红黑树
找了几个分析比较到位的,不再重复写了…… Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例 [Java集合源码剖析]TreeMap源码剖析 java源码分析之TreeMap基础篇 ...
- CDOJ 1280 772002画马尾 每周一题 div1 矩阵快速幂 中二版
"问题:众所周知772002很喜欢马尾,所以他决定画几幅马尾送给他的女朋友. 772002会画m种马尾,772002还有n张纸,n张纸分别编号1到n,每张纸上只能画一种马尾. 然而77200 ...
- Ubuntu 16.04下使用VMware安装CentOS 6.9然后在里面再安装KVM之后配置网桥无法上网的问题
别试了,这个问题无法解决,已经使用VMware安装了一层虚拟机,然后在里面再安装KVM,网络层次已经变了,即使配置了网桥同样无法上网. 可是这样试一下,不一定成功:把VMware的虚拟机绑定另一张物理 ...
- CentOS 6.9关闭NetworkManager服务
说明:安装了图形界面init5级别的系统会自动安装NetworkManager进行网络管理.这东西有点难搞,所以可以把它禁掉. 配置: #停止NetworkManager service Networ ...