ES6前端开发那些事儿

Set

2021-01-19  本文已影响0人  李小白呀

Set

Set 与数组类似, Set 集合中的元素不重复。

let arr = [1,1,2,2,3,3]
let set = [...new Set(arr)]
let item = 3
let itemIdx = 2
1234

查找快的原因:时间复杂度

set.has(item)  //O(1)
arr.indexOf(item)  // O(n)
arr.includes(item)  // O(n)
123

删除元素不需要知道索引

set.delete(item)
arr.splice(itemIdx, 1)
12

插入元素

set.add(item)
arr.push(item)
arr.unshift(item)
123

去重

let arr = [1,1,2,2,3,3]
let unq = [...new Set(arr)]
// [1,2,3]
123

Set 常用操作方法

方法/属性 功能介绍
size 获取当前Set对象的长度
add(value) 向当前Set对象中添加一个值,返回的是Set对象,所以支持链式写法
delete(value) 删除当前Set对象中的一个值,返回一个布尔值,表示是否删除成功
has(value) 检测这个value是否是当前Set对象的一个元素,通过返回的布尔值表示
clear() 清除当前Set对象所有元素,没有返回值

Set 遍历方法

方法/属性 功能介绍
keys() 返回该Set对象键名的遍历器,等同values()
values() 返回该Set对象键值的遍历器,等同keys()
entries() 返回该Set对象键值对的遍历器(目前感觉没什么用)
forEach() 使用回调函数遍历该Set对象的每个元素

for(let i of set.keys()){
    console.log(i);
}
// 0, 1, 2

set.forEach((value, key, _set) => {
    console.log(value, key, _set)
})
12345678
上一篇 下一篇

猜你喜欢

热点阅读