1、set、map是ES6新增的数据结构,他们都有1个属性4个方法。
2、set结构的特点就是里面的内容不能一样。如果通过构造器那么传递是数据。例如:let a=new Set([1,3,54]);
let a=new Set();
let b=[null,undefined,NaN,null,NaN,1,'1',1.0,-0,0];
b.forEach(item=>{
a.add(item);
})
a //Set{null,undefined,NaN,1,'1',0}
在set结构中,认为NaN跟NaN是相等的。
3、set跟map有一个属性size获取内容长度,有三个方法相同,分别是has、delete、clear。
has判断结构中是否有某一项,
delete删除某一项,如果删除成功则返回true,删除失败返回false。
clear清空结构。
set添加项的方法为add
map添加项的方法为set,获取为get。
4、set、map结构还有相同的keys()、values()方法、entries()方法。
set的key跟value一样,所以set的keys()、values()返回结果一样都是相同的迭代器对象。
SET示例如下:
let a=new Set([1,3,45]);
let b=new Set([4,5,6]);
let c=a.keys(); //SetIterator {1, 3, 45}
let d=a.values();//SetIterator {1, 3, 45}
let e=a.entries();//SetIterator {[1, 1], [3, 3], [45, 45]}
MAP示例如下:
let b=[]
let a=new Map([[1,45],[3,'张三'],[undefined,NaN],[b,111]]);
let c=a.keys();//MapIterator {1, 3, undefined, []}
let d=a.values();//MapIterator {45, "张三", NaN, 111}
let e=a.entries();//MapIterator {[1, 45], [3, "张三"], [undefined, NaN], [Array[0], 111]}
5、iterator接口可以用for of遍历。
map结构可以用forEach遍历
let a=new Set([1,3,45]);
let b=new Map([[1,3,45],[123,'dfdf']]);
b.forEach((item,index)=>{
console.log(index,item)//1 3,123 "dfdf"
});
let c=a.keys();
for(let i of c){
console.log(i);//1 3 45
}