Es6(三)

Map的基本使用

console.log('map的基本使用,key可以是任何类型');
console.log('key是基本类型。。。。');
let map=new Map();
map.set('name','only老K');
map.set('age',20);
map.set('结婚',false);
console.log(map);
console.log(map.get('name'));
console.log(map.get('age'));
console.log(map.get('已婚'));
//key是对象
console.log('key是对象...........');
let obj={};//obj对象
map.set(obj,'这个map是对象哦');
console.log(map.get(obj));
//key是函数
  console.log('key是函数.......');
  let func=function () {};
  map.set(func,'这个是函数哦');
  console.log(map.get(func));
//key是NaN
  console.log('key是NaN.........');
  map.set(NaN,'NaN');
  console.log(map.get(NaN));
  console.log(map.get(Number('aaa')));

在这里插入图片描述

Map的迭代

  //Map迭代
  //for ..of
  console.log('Map迭代...........');
  let map2=new Map();
  map2.set('name','only老K');
  map2.set('age',20);
  map2.set('已婚',false);
  for (let [key,value] of map2){
    console.log(key,value)
  }
  //查询所有value
console.log('查询所有value........')
  for (let value of map2.values()){
     console.log(value);
  }
  //forEach方法迭代
  console.log('forEach方法迭代........');
     map2.forEach(function(value,key){
     console.log(key,value)
});

在这里插入图片描述

Map对象操作、map与array的相互转换

     //Map对象操作
  console.log('讲解Map对象操作.....');
  //Map与Array转换
  //数组转Map
  console.log('MapMao对象操作,Map与Array转换,数组转Map.....');
  let arr=[['k1','v1'],['k2','v2']];
  let map3=new Map(arr);//arr在上面定义Array
  map3.forEach(function (value, key) {
  console.log(key,value);
  });
  //Map转数组
  console.log('Map转数组........')
  let arr2=Array.from(map3);//map3在上面定义了Map集合
  console.log(arr2);
  //Map合并
  console.log('Map合并.......');
  let map4=new Map([...map3,...map2]);//都是map集合,然后知道属性多少个使用...
  console.log(map4);

在这里插入图片描述

Set

 //Set对象
  //Set里的value值是唯一的
  console.log('set对象的唯一性....')
  let myMap=new Map();//map
  myMap.set('no001','only老K');
  myMap.set('no002','only老K1');
  myMap.set('no003','only老K');//和上面重复了 但是在Map集合中可以加入
  console.log(myMap);
  let mySet=new Set();//set
  mySet.add('only老K');
  mySet.add('only老K1');
  mySet.add('only老K');//和上面的重复了 但是在Set集合中不会加入
  console.log(mySet);

  //遍历
console.log('遍历set集合.......for遍历和foreach遍历');
  for (let value of mySet.values()){
    console.log(value);
  }
  mySet.forEach(function (value) {
   console.log(value);
  })
//Set数组转换
console.log('Set数组转换.......');
  //数组转Set
  console.log('数组转Set....');
  let arr3=[['k1','v1'],['k2','v2']];//定义成了数组
   let set3=new Set(arr3);//定义成了Set
  console.log(set3);
//set转数组
console.log('set转数组....');
  let arr4=[...set3];
  console.log(arr4);
//数组去重
console.log('数组去重');
  let arr5=[1,2,3,4,5,3,1,2];//定义了数组
  let set6=new Set(arr5);//使用的是Set集合Value值不能重复;
 let arr6=[...set6];//经过set集合的去重后在放到数组中去
 console.log(arr6);
 //求并集
  console.log('求并集......');
  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);
  //求交集
console.log('求交集.......');
  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);
//求差集
  console.log('求差集.......');
  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} 差集(a3中属于b3的元素去掉)
console.log(difference);

在这里插入图片描述

什么是差集

差集(a3中属于b3的元素去掉)

全部代码

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>es6入门(三)</title>
</head>
<script type="text/javascript">

console.log('map的基本使用,key可以是任何类型');
console.log('key是基本类型。。。。');
let map=new Map();
map.set('name','only老K');
map.set('age',20);
map.set('结婚',false);
console.log(map);
console.log(map.get('name'));
console.log(map.get('age'));
console.log(map.get('已婚'));
//key是对象
console.log('key是对象...........');
let obj={};//obj对象
map.set(obj,'这个map是对象哦');
console.log(map.get(obj));
//key是函数
  console.log('key是函数.......');
  let func=function () {};
  map.set(func,'这个是函数哦');
  console.log(map.get(func));
//key是NaN
  console.log('key是NaN.........');
  map.set(NaN,'NaN');
  console.log(map.get(NaN));
  console.log(map.get(Number('aaa')));
  //Map迭代
  //for ..of
  console.log('Map迭代...........');
  let map2=new Map();
  map2.set('name','only老K');
  map2.set('age',20);
  map2.set('已婚',false);
  for (let [key,value] of map2){
    console.log(key,value)
  }
  //查询所有value
console.log('查询所有value........')
  for (let value of map2.values()){
     console.log(value);
  }
  //forEach方法迭代
  console.log('forEach方法迭代........');
     map2.forEach(function(value,key){
     console.log(key,value)
});
     //Map对象操作
  console.log('讲解Map对象操作.....');
  //Map与Array转换
  //数组转Map
  console.log('MapMao对象操作,Map与Array转换,数组转Map.....');
  let arr=[['k1','v1'],['k2','v2']];
  let map3=new Map(arr);//arr在上面定义Array
  map3.forEach(function (value, key) {
  console.log(key,value);
  });
  //Map转数组
  console.log('Map转数组........')
  let arr2=Array.from(map3);//map3在上面定义了Map集合
  console.log(arr2);
  //Map合并
  console.log('Map合并.......');
  let map4=new Map([...map3,...map2]);//都是map集合,然后知道属性多少个使用...
  console.log(map4);

  //Set对象
  //Set里的value值是唯一的
  console.log('set对象的唯一性....')
  let myMap=new Map();//map
  myMap.set('no001','only老K');
  myMap.set('no002','only老K1');
  myMap.set('no003','only老K');//和上面重复了 但是在Map集合中可以加入
  console.log(myMap);
  let mySet=new Set();//set
  mySet.add('only老K');
  mySet.add('only老K1');
  mySet.add('only老K');//和上面的重复了 但是在Set集合中不会加入
  console.log(mySet);

  //遍历
console.log('遍历set集合.......for遍历和foreach遍历');
  for (let value of mySet.values()){
    console.log(value);
  }
  mySet.forEach(function (value) {
   console.log(value);
  })
//Set数组转换
console.log('Set数组转换.......');
  //数组转Set
  console.log('数组转Set....');
  let arr3=[['k1','v1'],['k2','v2']];//定义成了数组
   let set3=new Set(arr3);//定义成了Set
  console.log(set3);
//set转数组
console.log('set转数组....');
  let arr4=[...set3];
  console.log(arr4);
//数组去重
console.log('数组去重');
  let arr5=[1,2,3,4,5,3,1,2];//定义了数组
  let set6=new Set(arr5);//使用的是Set集合Value值不能重复;
 let arr6=[...set6];//经过set集合的去重后在放到数组中去
 console.log(arr6);
 //求并集
  console.log('求并集......');
  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);
  //求交集
console.log('求交集.......');
  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);
//求差集
  console.log('求差集.......');
  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} 差集(a3中属于b3的元素去掉)
console.log(difference);
</script>
<body>

</body>
</html>

快速传送门

上一篇博客

上一篇博客

下一篇博客

下一篇博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值