new Set数组去重,交集并集差集
方法 | 描述 |
---|
add | 添加某个值,返回Set对象本身。 |
clear | 删除所有的键/值对,没有返回值。 |
delete | 删除某个键,返回true。如果删除失败,返回false。 |
forEach | 对每个元素执行指定操作。 |
has | 返回一个布尔值,表示某个键是否在当前 Set 对象之中。 |
数组去重
var arr = [1,2,3,3,1,4];
[...new Set(arr)];
Array.from(new Set(arr));
[...new Set('ababbc')].join('');
new Set('ice doughnut');
并集
var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var union = new Set([...a, ...b]);
交集
var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var intersect = new Set([...a].filter(x => b.has(x)));
差集
var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var difference = new Set([...a].filter(x => !b.has(x)));
ES6中Array新增了一个静态方法Array.from,可以把类似数组的对象转换为数组
let set = new Set();
set.add(1).add(2).add(3);
let array = Array.from(set);
console.log(array);