set集合

set集合

set和map一样没有语法糖,只有标准写法

var s1 = new Set();
// 存数据
s1.add(100);
s1.add(100);
// 长的一样也不是一个数组,因为开辟了两个内存空间
s1.add([100]);
s1.add([100]);
s1.add(200);
console.log(s1);

// 遍历s1并打印
s1.forEach(function(el){
   	console.log(el);
})
var arr = [11,22,33,11];
// 遍历数组 然后把数组的元素调用s1.add添加进集合中
var s1 = new Set(arr);
// 取出了数据容器中的所有数据,然后存入新数组返回值
var srr2 = Array.from(s1);
var arr = [10,20,30,10,{}];
// 把arr的元素全部取出,然后存入新数组arr2中 
var arr2 = [...arr];
// 第二个相等,只是保存的对象,不是创建了对象 所以是一样的
console.log(arr2,arr==arr2,arr[4]==arr2[4]) //false true
			
			
//并集,两个合并在一起
var arr = [10, 20, 30, 10,{}]
var arr2 = [100, 200,30,10]
var s1 = new Set([...arr,...arr2])
console.log(s1)
			
			
//交集,相同的部分
var arr = [10, 20, 30, 10,{}]
var arr2 = [100, 200,30,10]
// 使用filter过滤器,来过滤掉不要的数据
var s2 = new Set(arr.filter(function(el) {
	if (arr2.includes(el)) {
		return el
	}
}))
console.log(s2)

数组转map

数组转map:必须是二维数组

map转数组: Array.from()静态方法

var arr=[[1,"hello"],[2,"h5"],[3,{name:"karen"}]]
var m1=new Map(arr)
var arr2=Array.from(m1)
console.log(arr,m1,arr2,arr==arr2,arr[2][1]==arr2[2][1])
	var arr=[100,200,100,{age:20},{age:20}]
	//数组转集合
	var s1=new Set(arr)
	console.log(s1,s1.size)
			
	//集合转数组
	var arr2=Array.from(s1)
	console.log(arr,s1,arr2,arr[4]==arr2[3])
			
	//多个数组转集合和map: ...
	var arr1=[10,20]
	var arr2=[100,20]
	var arr3=[200,{name:"karen"}]
	var s1=new Set([...arr1,...arr2,arr3])
	var m1=new Map([arr1,arr2,arr3])
	var m2=new Map(m1)
	console.log(m1,m2,m1==m2,m1.get(200)==m2.get(200))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值