set类似于数组,没有重复的元素,开发中可用于去重操作,它的key和value相等。
1 let set = new Set([1,2,3,4,4]); 2 console.log(set); // Set { 1, 2, 3, 4 }
size 返回集合的长度(去重后的长度)
1 console.log(set.size);
add() 添加一个元素
1 set.add('55')
链式添加多个元素
1 set.add('Mr').add('21')
delete() 删除一个元素
1 set.delete(2);
has() 判断set集合中是否存在该元素 返回 true / false
1 console.log(set.has(2)); //true 2 console.log(set.has('2')); //false
clear() 清除set集合中所有元素
1 set.clear();
没有返回值
1 console.log(set.clear()) // undefined
1 let set=new Set([1,2,3,4,5,6]); 2 let array=[...set]; 3 console.log(array);
1 // for...of遍历 2 for (let i of set) { 3 console.log(i); 4 }
1 //forEach 变量 2 //在 Set 集合中 key 和 value 都是值 3 //s 表示 set 集合本身 4 // set.forEach(闭包); 5 set.forEach(function(key,value,s){ 6 console.log(key + '-' +value); //1-1 2-2 3-3 4-4 5-5 6-6 7 console.log(s); //Set(6) { 1, 2, 3, 4, 5, 6 } 8 });
map 类似于对象,本质上是键值对的集合。字符串、对象都可以当作键
初始化一个map集合
1 let map=new Map([ 2 ['name','Mr.Lee'], 3 ['age',100] 4 ]);
size(去重后的长度)
1 console.log(map.size);
set() 设置键值对
1 map.set('name','Mr.Lee'); //.set 添加,支持.set(...).set(...)
get() 通过键名获取元素
1 console.log(map.get('name')); //.get 获取
delete() 删除一个键值对
1 map.delete('name');
has() 判断是否有该键值
1 console.log(map.has('name')); //true
clear() 清除map集合中的数据
1 map.clear();
1 map.forEach((value,key,m)=>{ 2 console.log(key + '-' + value); 3 console.log(m); 4 });