//定义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
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序--否...
- 前段时间做了一个简单调用Google Map API的项目,因为之前没有接触过这些,所以在看了文档做出来之后自己稍...
- map() 是数组的方法,对数组中每一个元素执行相同的函数,并返回新的数组可以理解为一种映射。 filter() ...
- 高阶函数 函数的参数可以接收另一个函数,这类函数称之为高阶函数 map JavaScript的map()是Arra...