【javascript】如何在Javascript中创造map对象?

在讲解这篇文章之前,我们都知道Map是一个存放键值对形式的集合,而Javascript中却没有此类型的函数API。那么能不能利用Array来存储有键值对形式的对象呢?下面将展示在JS中如何创建MAP对象。

/**
 * 创建map类,用于存储键-值,一一对应起来
 */
function Map(){
	
	/**
	 * 定义map类中的元素结构,并初始化 
	 */
	var struct = function(key,value){
		this.key = key;
		this.value = value;
	}
	
	/**
	 * 定义put方法,添加元素
	 */
	var put = function(key,value){
		for(var i = 0; i < this.arr.length; i++){ //遍历map中的所有元素
			if(this.arr[i].key === key){ // 此map不能添加已经存在的元素
				this.arr[i].value == value;
				return false;
			}
		}
		this.arr[this.arr.length] = new struct(key,value);
	}
	
	/**
	 * 定义get方法,根据key获取相应的value
	 */
	var get = function(key){
		for(var i = 0; i < this.arr.length; i++){
			if(this.arr[i].key === key){
				return this.arr[i].value;
			}
		}
		return null;
	}
	
	/**
	 * 定义remove方法,用于删除指定key的元素
	 */
	var remove = function(key){
		var lastProp;
		for(var i = 0; i < this.arr.length; i++){
			lastProp = this.arr.pop(); //移除最后一个元素并返回该元素值
			if(lastProp === key){
				continue;
			}
			this.arr.unshift(lastProp); //将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度
		}
	}
	
	var size = function(){
		return this.arr.length;
	}
	
	this.arr = [];
	this.put = put;
	this.get = get;
	this.remove = remove;
	this.size = size;
}
当然,Java中的Map对象是无序的键值对形式的集合,所以此对象并非真正意义上的Map对象,我们构造此对象,就是做数据载体用.合理的运用一些Javascript中的原型函数,就能构想我们想要实现的功能方法.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑起来贼好看

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值