提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
1.Set
Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用
Set 与数组类似, Set 集合中的元素不重复。
查找元素: 在数组中使用 indexOf() 或 includes() 检查元素是否存在比较慢。
删除元素: 在 Set 中,可以通过值删除元素。即在数组中,基于索引的splice() 功能。
插入元素: 在 Set 中添加元素比在数组中通过 push()、 unshift() 或其他同类操作要快。
去重: Set 对象仅能存储不同的值。
(1)set-类型转换(数组去重的方法之一)
var arr=[11,22,33,11]
var s1=new Set(arr) //遍历的数组 然后把数组的元素们调用s1.add添加进集合中
var arr2=Array.from(s1) //取出了数据容器中的所有数据 然后存入新数组返回值
console.log(arr2)
运行结果:
(2)forEach( )遍历方法
var arr=[11,22,33,11]
var s1=new Set(arr)
s1.add(100)
s1.add(100)
s1.add(200)
s1.add("hello")
s1.add([100])
s1.add([100])
console.log(s1)
s1.forEach(function(el){
console.log(el)
})
运行结果:
(3)...()
var arr=[10,20,30,10,{}]
var arr2=[...arr]//把arr的元素全部取出 然后存入新数组arr2中
console.log(arr,arr2,arr==arr2,arr[4]==arr2[4])
运行结果:
(4)并集
var arr = [10, 20, 30, 10,{}]
var arr2 = [100, 200,30,10]
var s1 = new Set([...arr,...arr2])
console.log(s1)
运行结果:
(5)交集
var arr = [10, 20, 30, 10,{}]
var arr2 = [100, 200,30,10]
var s2 = new Set(arr.filter(function(el) {
if (arr2.includes(el)) {
return el
}
}))
console.log(s2)
运行结果: