Ⅰ.Set集合
集合表示无重复有序的队列;
如何声明:
let set=new Set([1,2,3]);
console.log(set);
方法:
1.add:
set.add('qq')
set.add('dd')
2.delete
set.delete('qq')
3.has:校验某个值是否在集合中
console.log(set.has(1))
4.size 集合长度
5.foreach遍历数组
set.add([7,8,9])
set.forEach(
(a,b,c)=>{
console.log(a)
console.log(b)
console.log(c)
}
);
- 第一个参数,就是当前正在遍历的元素
- 第二个参数,就是当前正在遍历的元素的索引
- 第三个参数,就是正在遍历的数组
6.扩展运算符封装到数组中
let arr=[...set];
console.log(arr[1]);
7.内部的对象无法被释放==》weakset
var obj={}
set.add(obj)
obj=null
console.log(set)
Ⅱ.Map
Map类型是键值对的有序列表;键和值是任意类型
1.Map声明
let map=new Map();
2.map赋值
let map=new Map();
map.set("name","wb")
map.set("age",88)
console.log(map)
3.map获取值
console.log(map.get("name"))
根据键查询值
4.clear、has、delete
5.构造时声明
let m1=new Map([['a',3],['d',9]])
Ⅲ.数组拓展
1.from()
将伪数组转化为真正的数组;
常见的伪数组:arguments、queryselect(All)
var a=function(a,b,c){
console.log(arguments)
}
a(7,8,9)
from
let att=function(a,b,c){
let arr=Array.from(arguments)
console.log(arr)
}
att(7,8,9)
同理对quertselectALL进行from转化
let lii=document.querySelectorAll('li');
let kk=Array.from(lii);
console.log(lii);
console.log(kk);
当然拓展运算符也能实现这样的功能
console.log([...lii])
同时from函数也可以接收第二个参数来对数组元素进行操作
2.of()将任意数据类型封装到数组中
let arr=Array.of(1,3,5,[2,4],{name:'wb'})
console.log(arr)
3.copywithin()
array.copyWithin(target, start, end)
target:开始替换的索引位置
start:复制内容的索引位置
end:结束复制内容的位置
var a=[1,2,3,4,5,6].copyWithin(1,4,5)
console.log(a)
4.find()和findindex()
find找寻第一
个满足条件的元素;findindex找第一个满足条件的寻索引点
var a=[1,2,3,4,56]
console.log( a.find((n)=>{
return n>10
}))
findindex()
var a=[1,2,3,4,56]
console.log( a.findIndex((n)=>{
return n>10
}))