Javacript实现字典结构

字典是一种用[键,值]形式存储元素的数据结构。也称作映射,ECMAScript6中,原生用Map实现了字典结构。
下面代码是尝试用JS的Object对象来模拟实现一个字典结构。

<script>
//set添加 get获取 has是否有 remove删除 values获取所有value size获取长度 clear清除所有
function Dict(){
	this.item = {};
}

//是否存在元素
Dict.prototype.has = function(key){
	return key in this.item;
}

//set添加元素
Dict.prototype.set = function(key,value){
	if(!this.has(key)){
		this.item[key] = value;
		return true;
	}
	return false;
}

//查找并返回元素
Dict.prototype.get = function(key){
	return this.has(key) ? this.item[key] : undefined;
}

//移除元素
Dict.prototype.remove = function(key){
	if(this.has(key)){
		delete this.item[key];
		return true;
	}
	return false;
}

//返回字典所包含元素的数量
Dict.prototype.size = function(key){
	var length = 0;
	for(var i in this.item){
		length++;
	}
	return length;
}

//清空字典所有元素
Dict.prototype.clear = function(){
	if(this.size() > 0){
		this.item = {};
		return true;
	}
	return false;
}

//把字典所有元素用数组的形式返回
Dict.prototype.values = function(){
	var values = []
	if(this.size() > 0){
		for(var i in this.item){
			values.push(i);
		}
		return values;
	}
}

var dict = new Dict();
dict.set('a',1);
dict.set('b',2);
dict.set('c',3);
console.log(dict.values()); //["a", "b", "c"]
dict.remove('b');
console.log(dict.size()); //2
dict.clear();
console.log(dict.size()); //0
console.log(dict.clear()); //false
</script>
posted @   defmain  阅读(256)  评论(0编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析
点击右上角即可分享
微信分享提示