• 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) + '%';
    }
    

      

  • 相关阅读:
    HTTP 03 HTTP 报文头
    HTTP 02 HTTP1.1 协议
    HTML 01 请求过程
    Java_异常_04_ OutOfMemoryError系列
    mq_学习_01_消息中间件的概述
    mq_学习_00_资源帖
    Java钉钉开发_异常_01_error code:50002, error message:请求的员工userid不在授权范围内
    Java_JS_01_java调用js
    JavaUtil_09_email_使用 commons-email 发送邮件
    JavaUtil_08_StringUtil_commons-lang3 之 StringUtils
  • 原文地址:https://www.cnblogs.com/sallet/p/5644898.html
Copyright © 2020-2023  润新知