ES6 中的set,map

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
        };         复制代码


转载于:https://juejin.im/post/5bfc08ac6fb9a049c84f2300

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值