小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
Set集合,ES6标准中提供Set构造函数来创建集合,它是一种无重复元素的列表
Set集合
- add() Set通过add()方法向集合中添加元素,访问集合的size属性可以获取集合中目前的元素数量,并且允许存储任何类型的唯一值
let demo = new Set()
demo.add('jojo')
demo.add('dio')
console.log(demo) // Set(2) {"jojo","dio"}
console.log(demo.size) // 2
这是由以上代码打印出的,展开后可以看到一个[[Entries]],那是因为Set的函数返回一个迭代器对象,因此不能以数组的形式去访问它,例如demo[0],这样打印出来会是一个undefined
- delete() 可以添加自然也可以删除,通过delete()删除Set集合中的某一个元素
demo.delete('dio') // Set(1) {"jojo"}
- clear() 清除所有该集合中的元素
demo.clear() // Set(0) {}
- has() 判断该集合是否有某个元素
demo.add(1)
console.log(demo.has(1)) // true
console.log(demo.has(2)) // false
- 去重 一般可以通过Set不可重复的属性进去去重的处理,可以省去部分判断
let arr = [1,1,2,2]
let demo2 = new Set(arr)
arr = [...demo2]
console.log(arr) // [1,2]
- forEach()
顺序对每个元素进行callback函数一次,
callback被调用三个参数,[values,values,集合本身]
let a = new Set()
a.add('b')
a.add('c')
a.forEach((v1,v2,v3)=>{
console.log(v1,v2,v3)
// b b Set(2) {"b", "c"}
// c c Set(2) {"b", "c"}
})
Set()还有一些属性此处没有介绍到,详细请看MDN文档, 这里主要从通俗的方式带领学习平常可能会更常用到的场景