面试中遇到的问题,如何求两个数组之间的并集、差集、交集,我一开始并不知道有ES6这么简单的语法,下意识的认为要靠for循环实现,但是回来一看,用ES6的Set类型,一句话就出来了,我一查,啪!它就一句话就出来了,很快啊!
不说了,全是泪!上代码!
let arr1 = [1,2,3];
let arr2 = [2,3,4];
let set1 = new Set(arr1);
let set2 = new Set(arr2);
//求并集
let union = new Set([...set1,...set2]);
console.log('并集',union);
//求交集
let intersect = new Set([...set1].filter(x => set2.has(x)));
console.log('交集',intersect);
//求差集
let diffrence = new Set([...set1].filter(x => !set2.has(x)));
console.log('差集',diffrence);
运行结果:
一定要好好学习ES6语法!!