Set 和 Array 玩转 交/并/差集

这部分内容我实际上在我的文章中写过,但我感觉这部分是一个比较好的应用,所以就给独立出来。

关于ES6给我们提供的新的数据结构,可以看下我这篇文章:(里面包含了这部分内容)
ES6之深入Set 与 WeakSet的知识讲解

要通过Set 和 Array 来玩转 交/并/差集,还得使用到一个小的知识点: …操作符。
…操作符的作用在数组上时可以帮我们把把数组给展开,变成些散列的值,也可以把我们散列的值收集成一个数组。如下图:
图片标注1: 就是…操作符的展开作用
图片标准2: 就是…操作符的收集作用
在这里插入图片描述
交 / 并 / 差集代码实现:

let o = {
	name: 'cst'
}
let arr = [11, o, 11, 12, 33, o, 33, 44, 55, 44, {name: 'hfq'}];

	// 用Set来实现去重
	let os = new Set(arr);
	let newArr = [...os];
	console.log(newArr);

let arr1 = [1, 2, 3, 4, 5, 3];
let arr2 = [1, 3, 4, 6, 7, 8];

	// 交集
	let osj1 = new Set(arr1);
	let osj2 = new Set(arr2);
	let newarrj = [...osj1].filter(ele => osj2.has(ele));
	console.log(newarrj);

	// 并集
	let osbing = new Set([...arr1, ...arr2]);
	console.log([...osbing]);

	// 差集
	let oscj1 = new Set(arr1);
	let oscj2 = new Set(arr2);
	let newarrc1 = [...oscj1].filter(ele => !oscj2.has(ele));
	console.log(newarrc1);

	let newarrc2 = [...oscj2].filter(ele => !oscj1.has(ele));
	console.log(newarrc2);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值