ES6 -- new Set()之去重,交集,並集等
阿新 • • 發佈:2020-08-19
首先,要記住的是:資料結構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}