Set
set是es6引入的新的数据类型,常用的技术点:
- 初始化一个set,let newSet = new Set([1,2,3])
- 增 newSet.add(1)
- 删 newSet.delete(1)
- 判断是否存在 newSet.has(1) // true
- Set的长度 newSet.size
- 数组和Set的数据转换 new Set([])/ Array.from(newSet) // 数组去重常用
- Set的遍历方法 for…of keys,valus,entries和forEach
##Set
- es6 引入的数据结构
- 类似数组
- 成员唯一,没有重复
- Set本身是一个构造函数
初始化
1 | var set = new Set(); |
添加/删除元素
1 | var set = new Set(); |
删除
set.delete(1); // 删除
判断是否包含元素
set.has(1); // 判断是否含有1
set长度
set.size // set的长度
清空set
set.clear()
set和数组类型的相互转换
var set = new Set([1,2,3,4]) // 数组转换成set
var array = Array.from(set); // set转换成数组
var array = […new Set([1,2,3,4])]
数组去重
var arr = [1,2,3,4,4,4,4,5,5]
function removeSameItem(arr){
return [… new Set(arr)]
}
removeSameItem(arr);
需要注意的点:
1 | # NaN只能加入一个到set |
遍历
Set 结构的实例有四个遍历方法,可以用于遍历成员。
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():使用回调函数遍历每个成员
由于 Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致。
1 | let set = new Set(['red', 'green', 'blue']); |