首先,要記住的是:數據結構Set內成員的值都是唯一的,沒有重復的值
Set對象常用的用法
1.數組去重
var arr = [1,2,3,2,1,4]; [...new Set(arr)] //結果為 [1, 2, 3, 4] 或者 Array.from(new Set(arr)); //結果為 [1, 2, 3, 4]
小貼士: ES6內的方法Array.from()方法就是將一個類數組對象或者可遍歷對象轉換成一個真正的數組。所謂類數組對象,最基本的要求就是具有length屬性的對象。
2. 字符串重復字符去重
let a = 'abcdefabcdef'; [...new Set(a)].join(''); //"abcdef"
let a = '東方大道東方大道'; [...new Set(a)].join(''); //"東方大道"
3. 兩數組取並集
let a = new Set([1, 2, 3]); let b = new Set([4, 3, 2]); // 並集 let union = new Set([...a, ...b]); // Set {1, 2, 3, 4}
4. 兩數組取交集
let a = new Set([1, 2, 3]); let b = new Set([4, 3, 2]); // 交集 let intersect = new Set([...a].filter(x => b.has(x))); // set {2, 3}
5.(a 相對於 b 的)差集
let a = new Set([1, 2, 3]); let b = new Set([4, 3, 2]); // (a 相對於 b 的)差集 let difference = new Set([...a].filter(x => !b.has(x))); // Set {1}