- 集合的基本概念:集合是由一组无序且唯一(即不能重复)的项组成的。这个数据结构使用了与有限集合相同的术教学概念,应用在计算机的数据结构中。
- 特点: key和value相同,没有重复的value.
- Es6 提供了数据结构 Set,类似于数组,但成员都是唯一的,没有重复的值。
创建 Set
let a = new Set([1,2,3])
console.log(a);
//输出
- set 的属性 size
let a=new Set([1,2,3])
console.log(a.size)
//输出3
- set 的方法
- set.add
let a=new Set([1,2,3])
a.add('a').add('b')
console.log(a)
输出
在这里可以看出 add 可以进行链式的添加,类似于 jquery中的方法可以一起使用;
2. set.delete
复用上一个例子,直接输出
console.log(a.delete('a'))
console.log(a)
输出
可以看出删除成功返回了 一个布尔值,为true;
如果继续删除 a ,不难得知应该返回false;
此时的a 打印出来 可以看出确实把 a 从set 里面删掉了
3. set.has
console.log('a')
//a 在上一个例子中删除掉了
console.log('b')
输出
4. set.clear()
a.clear()
console.log(a)
输出
set 被清空掉了
5. keys() 返回 键名的遍历器
6. values()返回 键值的遍历器
由于 Set的键名和键值一样
console.log(a.keys())
console.log(a.values())
输出结果
可以看出来完全一样
7. entries 返回键值对
console.log(a.entries())
//输出结果与上面的一样
- foreach
console.log(a.forEach(function (value,key,set){
console.log(value,key,set)
}))
输出
9. set不允许有重复数据
let a=new Set({1,2,3})
a.add(1)
console.log(a)
输出
可以看出相同的数据并没有被添加进去;
如此我们可以利用set 进行数组去重。下一个文档进行演示。