您当前的位置: 首页 > 

小志的博客

暂无认证

  • 1浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

es6 Map与Set

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

一、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)

在这里插入图片描述

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0437s