Set和Map
Set:类似数组 成员的值是唯一的 下有 add(),has(),delete(),clear(),size 等方法
Map:类似于对象 成员的值是唯一的 下有 set(),has(),delete(),clear(),size 等方法
1.set下的方法
const set = new Set(); set.add(2).add('2').add(4); //添加 console.log(set); //Set(3) {2, "2", 4} //可以直接把数组写进去 var arr = [1,2,3,4,2,4,5,2,1,4,5,5,7]; const set2 = new Set(arr); console.log(set2); //{1, 2, 3, 4, 5, 7} //has() 是否set成员 返回true false set.has(2) //true //delete() 删除 set.delete(3); //clear() 清除所有 set.size //3 set 的长度 复制代码
2.map 下的方法
//map可以接受一个数组作为参数 var m = new Map([['name','a'],['age',10],['a',3]]); //或者 var arr=[['name','a'],['age',10],['a',3]] var m = new Map(arr);//Map(3) { "name" => "a", "age" => 10, "a" => 3} //map的键可以是其它的类型 键值对 var m = new Map() m.set('name','abc').set('age',20); var name1 = 'name'; m.get(name1);//"abc" //可以为其它类型 m.set(123,'123'); m.set(true,'124'); m.set(undefined,'124'); var a = {msg:'hello'}; m.set(a,'name');//{ "name" => "abc", "age" => 20, 123 => "123", true => "124", undefined => "124", ,Object => "name"} m.get(a);//"name" //has(),delete(),clear(),size方法同上复制代码
/***Set 和 Map 的遍历方法***/
//遍历 方法 keys()--键的值 value()--值 entries()--键值对
1.set 的遍历方法
var arr2 = new Set([1,2,3,4,2,4,5,2,1,4,5,5,7]); for(let e of arr2.entries()){ console.log(e);//获取到的是去重后的 键值对 键==值 }; for(let k of arr2.keys()){ console.log(k);//获取到的是键 }; for(let v of arr2.values()){ console.log(v);//获取到的是值 }; 复制代码
2. map 的遍历方法
var m = new Map([['name','a'],['age',10],['a',3]]); for(let e of m.entries()){ console.log(e);// 获取的是键值对 ["name", "a"] ["age", 10] ["a", 3] }; for(let k of m.keys()){ console.log(k);// 获取的是键值对 name age a }; for(let v of m.values()){ console.log(v);// 获取的是键值对 a 10 3 }; 复制代码