ES6之Set,Map及数组,对象数据类型

Set和Map

数组数据类型:
  数组无名有值
  根据下标记录数据  按照顺序记录
  如果需要找到某个数据,必须遍历整个数组,查找数据  时间长
  插入,删除,添加元素 因为数组是紧密结构  时间长
  数组的元素可以重复,无法让元素唯一性
  数组有关联关系,可以根据自身前后找到上下数据
  数组可以知道当前遍历到什么地方了

对象数据类型:
  key:value  键值对  必须有名有值
  可以直接根据键名获取到值,不需要遍历   速度快
  键名是唯一,如果有相同键名会覆盖,但是值仍然不是唯一
  如果查找值   仍然需要遍历整个对象查找    时间长
  插入,删除,添加元素,对象本身是一个松散型结构,因此插入等操作没有关联关系,速度非常快
  因为松散结构,不具备上下数据
  对象是没有长度,所以无法知道现在遍历到第几个,是不是最后一个,是不是开始

Set
	1.Set是一个不能有重复元素的集合,重复添加无效
	2.列表容器,没有下标,没有顺序,各数据之间没有关联
	3.新建set:let  a=new Set()
		a.add(value)
			添加元素
		a.delete(value)
			删除元素
		a.has(value)
			判断是否是成员,快速查找,不需要遍历
		a.clear()
			清除所有数据
	4.数组去重
		let arr=[1,2,3,1,2,3,1,2,3];
		let sets=new Set(arr);
		arr=Array.from(sets);
		console.log(arr);
			Array.from()方法从一个类似数组或可迭代对象中创建一个新的数组实例
	5.遍历set
		由于没有下标,所以for循环跟for in都不行,可以使用for of和forEach
		for(let value of a){
        	console.log(value);
    		}
		a.forEach(function(key,value,s){
        console.log(key,value,a);
    		})
	6.弱引用列表类型  只能添加对象类型数据
		let b=new WeakSet();


Map
	1.Map类型是有长度的键值对数据类型
	2.新建Map:let b=new Map();
		b.set(key,value)
			添加元素
		b.get(key)
			获取元素,可以根据键查找属性值
		b.size
			获取map的成员数
		b.has(value)
			判断是否是成员,只能判断是否有键名,不能判断是否有这个值
		b.clear()
			清除所有数据
	3.遍历
		(1)遍历对象(map里所有元素):
		for(let obj of b){
    		console.log(obj);
			}
		(2)遍历属性名:
		for(let str of b.keys()){
    		console.log(str);
			}
		(3)遍历值:
		for(let value of b.values()){
        	console.log(value);
   			}
		(4)返回所有成员的遍历器:
		for(let item of b.entries()){
        	console.log(item);
    		}
		(5)forEach遍历map
		b.forEach((v,k,list)=>{console.log(v,k,list)})

		b.forEach(function(prop,value){
   			 console.log(prop,value);
			 });
	4.弱引用键值对类型
		let b=new WeakMap();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值