`
haytalent
  • 浏览: 17232 次
  • 性别: Icon_minigender_1
  • 来自: 未知国度
社区版块
存档分类
最新评论

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  希望起到抛砖引玉的效果

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics