add:
let set1 = new Set()
set1.add(1)
set1.add(2)
console.log(set1) //set1{1,2}
<!--注意:不能同时添加多个值,只会取第一个值-->
set1.add(3,4)
console.log(set1) //set1{3}
更快速的方法
let set2 = new Set([1,2,3,4,5,6])
删除:delete、clear
let set1 = new Set([1,2,3])
console.log(set1) //set1{2}
清除所有项
set1.clear()
查看是否存在某个值:has(返回布尔值)
let set1 = new Set([1,2,3,6])
let isHas1 = set1.has(1) //true
let isHas4 = set1.has(4) //false
console.log(isHas1)
console.log(isHas4)
set和数组的相互转换
数组转set:new Set(arr)
let arr = [1,2,3,4,5,6]
let set1 = new Set(arr)
set转数组:Array.from(set)
let set1 = new Set([1,2,3,4,5])
let arr = Array.from(set1)
set的遍历
for of遍历
扩展:for of循环
keys() :遍历key值
values() :遍历value值
entries() :遍历key和value
注意;set键和值是一样的,故使用for of时,有以下:
let set1 = new Set([1,2,3])
for(let item of set1.keys()) {
console.log(item) ----1,2,3
}
for(let item of set1.values()) {
console.log(item) ----1,2,3
}
for(let item of set1.entries()) {
console.log(item) ----[1,1] [2,2] [3,3]
}
故,用以下遍历即可
for(let item of set1) {
console.log(item) ----1,2,3
}
let arr = [1,2,3,6,6,2,1,3]
let set1 = new Set(arr)
多数组去重时:
let arr1 = [1,2,3,6,6,2,1,3]
let arr2 = [2,2,2,3,4,5,5,4,3]
let set1 = new Set([...arr1,...arr2])
set和array区别
增删改查
增:
let arr = []
arr.push(1)
let set = new Set()
set.add(2)
删:
let arr = [1,2]
arr.shift(1) //pop、splice
let set = new Set([1,2])
set.delete(2)
查(查找是否含有某一项):
find返回的是满足条件的第一项
let arr = [1,2]
let hasArr = arr.find((v,i)=> {
return v === 1
})
has返回的是布尔值
let set = new Set([1,2])
let hasSet = set.has(3)
set转数组
var set = new Set([1, 2, 3, 3, 4]);
Array.from(set) //输出[1,2,3]