天天看点

JS Set方法

1 创建Set

new Set()方式创建

let s = new Set();      

1.1、new Set()方式创建

通过传入数组方式创建

如果想在创建的同时初始化实例,则可以给 Set 构造函数传入一个可迭代对象,其中需要包含插入到新集合实例中的元素(Set 可以包含任何 JavaScript 数据类型作为值):

let s = new Set([1,2,3,3,5])
let s = new Set(["val1", 1, true, {}, undefined, function fun() {}]);      

1.2 Set结构不会添加重复的值

const s = new Set([1, 1, 2, 3, 4, 4, 5, 6, 7, 4, 2, 1]);
Array.from(s); //  [1, 2, 3, 4, 5, 6, 7]      

1.3 用Set解决数组去重问题

const arr = [1, 2, 3, 3, 4, 5, 4, 4, 2, 1, 3];
Array.from(new Set(arr)); // [1, 2, 3, 4, 5]      

2. 添加元素

使用 add 方法

let s = new Set()
s.add(1)      

3. 删除元素、

使用 delete 方法

let s = new Set()
s.add(1)
s.add(5)
s.delete(5)      

4. 获取 Set 中元素个数

使用 size

let s = new Set()
s.add(1)
s.add(5)
s.size      

5. 判断 Set 中是否包含某个元素

has(): 查询Set实例是否存在某元素(返回布尔值):

let s = new Set();
s.add(1).add(2).add(3);
s.has(1); // true      

6. clear()

clear(): 清空Set实例:

let s = new Set();
s.add(1).add(2).add(3);
Array.from(s); // [1, 2, 3]
s.clear();
Array.from(s); // []      

7. 迭代

let s = new Set();
s.add(1).add(2).add(3);
Array.from(s.keys()); // [1, 2, 3]
Array.from(s.values()); // [1, 2, 3]
Array.from(s.entries()); // [[1, 1], [2, 2], [3, 3]]      

8. 遍历 Set

8.1. forEach形式

const s = new Set();
s.add(1).add(2).add(3);
s.forEach((value, key) => console.log(key + ' : ' + value));
// 1 : 1
// 2 : 2
// 3 : 3      

8.2. for of 形式

const s = new Set();
s.add(1).add(2).add(3);
for (const i of s) {
  console.log(i);
}
// 1
// 2
// 3      

9. Set 转换成数组

let v = new Set([1,2,3,3,5])
let a = Array.from(v)      

继续阅读