日期:2014-05-16  浏览次数:20396 次

js模仿hashmap

1 感想 ????

??? javascript作为一种弱类型的语言,我们在开发时又喜欢又憎恨,一般作为开发java的我们来说,如果总是用面向对象的开发方法去学习,结果看来这并不是一个太好的方法,而当我们用JavaScript去模仿对象时,这对你的学习会起到很大的效果。这篇文章是用JavaScript去模仿java中生成一个map,也有参考别人的地方,希望大家有更好的方法能共享起来。

?

2 实践

?

function hashmap(){
				var size = 0;
				var entry = {};
				this.put = function(key,value){
					if(!this.containKey(key)){
						entry[key] = value;
						size++;
						return true;
					}else{
						return false;
					}
				},
				this.get=function(key){
					if(this.containKey(key)){
						return entry[key];
					}
				},
				this.containKey = function(key){
					return (key in entry);
				},
				this.containValue = function(value){
					for( var i in entry){
						if(entry[i] == value ){
							return true;
						}
					}
					return false;
				},
				this.clear = function(){
				   this.size =0;
				   this.entry = {};
				},
				this.size = function (){
				 	return size;
				},
				this.keysByArray = function(){
					var keys = [];
					for(var keyIndex in entry){
						keys.push(keyIndex);
					}
					return keys;
				},
				this.keysByString = function(){
					var keys = [];
					for(var keyIndex in entry){
						keys.push(keyIndex);
					}
					return keys.join();
				},
				this.valuesByArray = function(){
					var values = [];
					for(var valueIndex in entry){
						values.push(entry[valueIndex]);
					}
					return values;
				},
				this.valuesByString = function(){
					var values = [];
					for(var valueIndex in entry){
						values.push(entry[valueIndex]);
					}
					return values.join();
				},
				this.remove = function(key){
						if(this.containKey(key)){
							delete entry[key];
							size--;
						}
				}
			}
			

?

3? 希望起到抛砖引玉的效果