码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript中模拟实现Java的集合类Map的常用方法

时间:2015-08-04 11:19:00      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:javascript   javascript实现map   javascript实现字典   

JavaScript中模拟实现Java的集合类Map的常用方法

(function Map(){
	
	var 
		size = 0, 
		map = {},
		strundefined;
	
	function MapCache() {
		
	}
	
	MapCache.prototype.put = function (key, value){
		
		if ( key === null || key === undefined){
			throw new Error(" null or undefined is not a illegality variable ! ");
		}
		
		if ( map[ key + " " ] == strundefined ) {
			map[ key + " "] = value;
			size++;
			return;
		}
		
		map[ key + " " ] = value;
	}
	
	MapCache.prototype.remove = function (key) {
		
		var value;
		
		if ( key !== null || key !== strundefined ) {
			value = map[ key + " " ];
			delete map[ key + " " ];
			size--;
			return value;
		}
		
		return value;
	}
	
	MapCache.prototype.get = function (key) {
		if ( map[key + " "] != strundefined ) {
			return map[ key + " " ];
		}
		
		return null;
	}
	
	MapCache.prototype.clear = function () {
		map = {};
		size = 0;
	}
	
	MapCache.prototype.size = function () {
		return size;
	}
	
	MapCache.prototype.keys = function () {
		
		var key, keys = [];
		// 此处因为 map 采用对象字面量的形式声明,原型对象默认为 Object 
		// 所以不需要使用hasOwnProperty 方法过滤原型链中的属性
		for ( key in map ) {
			keys.push(key);  
		}
		 return keys;
	}
	
	// 遵循 AMD 模块化规范, 支持RequireJS 模块化导出
	if ( typeof define === 'function' && define.amd ) {
		define('map', [], function (){
			return MapCache;
		})
	}

	// 导出名为 JMap 主要是为了防止和 chrome 中的自由 Map 命名冲突
	window.JMap = MapCache;
	
}());


版权声明:本文为博主原创文章,未经博主允许不得转载。

JavaScript中模拟实现Java的集合类Map的常用方法

标签:javascript   javascript实现map   javascript实现字典   

原文地址:http://blog.csdn.net/shenlei19911210/article/details/47272323

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!