您当前的位置: 首页 >  小志的博客

es6 Map与Set

小志的博客 发布时间:2019-10-08 17:32:47 ,浏览量:3

一、Map 基本操作

1、key是基本类型


  //key是基本类型
  let map=new Map();
  map.set('name','xiaozhi');
  map.set('age',26);
  map.set('sex','男');
  console.log("姓名:"+map.get('name'));
  console.log("年龄:"+map.get('age'));
  console.log("性别:"+map.get('sex'));

2、key是函数


  let map=new Map();
  let obj={};
  map.set(obj,'set一个对象');
  console.log(map.get(obj));

3、key是函数


  // key是函数
  let map=new Map();
  let func=function(){};
  map.set(func,'set一个函数');
  console.log(map.get(func));

4、key是NaN


   // key是NaNlet
   map=new Map();
   map.set(NaN,'NaN');
   console.log(map.get(NaN));
   console.log(map.get(Number('aaa')));

5、Map迭代 for …of


   // Map迭代   for ...of
  let map=new Map();
  map.set('name','王五');
  map.set('age',23);
  map.set('sex','女');
  for(let [key,value] of map){
    console.log(key,value)
  }

6、Map迭代 查询所有key


   // Map迭代   查询所有key
  let map=new Map();
  map.set('name','王五');
  map.set('age',23);
  map.set('sex','女');
   for(let key of map.keys()){
     console.log(key)
   }

7、Map迭代 查询所有value


   // Map迭代   查询所有value
  let map=new Map();
  map.set('name','王五');
  map.set('age',23);
  map.set('sex','女');
   for(let value  of map.values()){
     console.log(value)
   }

8、 Map迭代 forEach方法迭代


   // Map迭代    forEach方法迭代
  let map=new Map();
  map.set('name','王五');
  map.set('age',23);
  map.set('sex','女');
   map.forEach(function(value,key){
     console.log(key,value)
   });

二、Map对象操作

1、Map与Array转换

数组转Map


  let arr=[['k1','v1'],['k2','v2']];
  let map=new Map(arr);
  map.forEach(function(value,key){
    console.log(key,value)
  });


Map转数组


  let map=new Map();
  map.set('name','王五');
  map.set('age',23);
  map.set('sex','女');
  let arr=Array.from(map);
  console.log(arr);

2、Map合并


  let map1=new Map();
  map1.set('name','王五');
  map1.set('age',23);
  map1.set('sex','女');
  let map2=new Map();
  map2.set('id','1');
  map2.set('address','北京市海淀区');
  map2.set('phone','13211111111');
  let map3=new Map([...map1,...map2]);
  console.log(map3)

三、Set对象

1、Set里的value值是唯一的


  let set=new Set();
  set.add('张三');
  set.add('李四');
  set.add('张三');
  console.log(set);

2、Set遍历

for of 方式遍历


  let set=new Set();
  set.add('张三');
  set.add('李四');
  set.add('王五');

  for(let value of set.values()){
    console.log(value)
  }


forEach 方式遍历


  let set=new Set();
  set.add('张三');
  set.add('李四');
  set.add('王五');

  set.forEach(function(value){
    console.log(value)
  });

3、Set 数组转换

数组 转Set


  let arr3=[['k1','v1'],['k2','v2']];
  let set3=new Set(arr3);
  console.log(set3)


set转数组


  let set=new Set();
  set.add('张三');
  set.add('李四');
  set.add('王五');
  let arr=[...set];
  console.log(arr)

4、set数组去重


  let arr=[1,3,5,3,6];
  let set=new Set(arr);
  let arr1=[...set];
  console.log(arr1)

5、set求并集


  let a = new Set([1, 2, 3]);
  let b = new Set([4, 3, 2]);
  let union = new Set([...a, ...b]); // {1, 2, 3, 4}
  console.log(union)`在这里插入代码片`

6、set 求交集


  let a2 = new Set([1, 2, 3]);
  let b2 = new Set([4, 3, 2]);
  let intersect = new Set([...a2].filter(x => b2.has(x))); // {2, 3}
  console.log(intersect)

7、set求差集


  let a3 = new Set([1, 2, 3]);
  let b3 = new Set([4, 3, 2]);
  let difference = new Set([...a3].filter(x => !b3.has(x))); // {1}
  console.log(difference)

关注
打赏
查看更多评论

小志的博客

暂无认证

  • 3浏览

    0关注

    1100博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录