集合定义

基本操作
const arr = [1, 1, 2, 2];
const set = new Set(arr);
console.log(set);
console.log(...set);
const arr2 = [...set];
console.log(arr2);
console.log('******************************************************');
const set0 = new Set([1, 3, 2, 4]);
const has = set0.has(2);
console.log(has);
console.log('******************************************************');
const set1 = new Set([1, 1, 2, 2]);
const set2 = new Set([2, 3]);
const set3 = new Set([...set1].filter( item => {return set2.has(item)} ));
console.log([...set3]);
刷题
题目描述

解题思路

解题步骤

Code
var intersection = function(nums1, nums2) {
return [...new Set(nums1)].filter(n => nums2.includes(n));
};
时间复杂度 空间复杂度分析
- 因其中调用了filter(),且里面包含了includes() ,所以时间复杂度为
O(n^2)
- 因去重后的数存储在数组[]中,所以空间复杂度为
O(n)
前端与集合:使用ES6的Set
Set操作

let mySet = new Set();
mySet.add(1);
mySet.add(5);
mySet.add(5);
mySet.add('hello');
let o = {a: 1, b: 2};
mySet.add(o);
mySet.add({ a: 1, b: 2 });
const has = mySet.has(1);
mySet.delete(5);
for(let item of mySet) console.log(item);
console.log('*******');
for(let item of mySet.keys()) console.log(item);
console.log('*******');
for(let item of mySet.values()) console.log(item);
console.log('*******');
for(let [keys, values] of mySet.entries()) console.log(keys, values);
const myArr = [...mySet];
const myAr2 = Array.from(mySet);
const mySet2 = new Set([1, 2 ,3, 4]);
const intersection = new Set([...mySet].filter(n => mySet2.has(n)));
const difference = new Set([...mySet].filter(n => !mySet2.has(n)));
总结
