第一章、了解Set和Map 1.1 Map 发展:ES6之前,再js中实现“键/值”式的存储可以使用吗Object来方便高效完成,也就是使用对象属性作为键,在使用属性来引用值。
在ES6之后,Map作为新特性,Map是一种新的集合类型,为JS带来了真正的键/值存储机制。Map的大多数特性都可以通过Object类型实现,但两者还是存在一些细微的差异。
1.2 Set 新数据结构Set,类似于数组,但是成员的值都是唯一的,也是一种新的数据类型,在很多方面加强了Map Set一个很常见的方法就是数组去重 第二章、Set和Map基本API 2.1 Map基本API 使用new关键字和Map构造函数可以创建一个空映射:m = new Map() ————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:blog.csdn.net/qq_45796592…
const m = new Map();
//添加元素
m.set('name','❆LO❆');
m.set('name','❆VE❆').set('age','18');
m.set('change', function(){
console.log("发生了变化!!");
});
let key = {
school : 'ncwu'
};
m.set(key, ['南京','桂林','郑州']);
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_45796592/article/details/128653163
1. m.delete('name');
1. //清空
1. m.clear();
```
- **获取某个值:m.get("键名")**
```
console.log(m.get('change'))
```
- **查看map元素的个数:m.** **size**
```
```
console.log(m.size)
- **查看Map中有无某个key:m.has( " 键名" )**
```
console.log(m.has('name'))
- **遍历Map:for ···· each遍历;for ···· of es6新增的遍历方法**
1.
for(let v of m){
1. console.log(v);
1. }
```
```
```
Set基本API
创建一个Set:s = new Set()
添加新的元素:s.add( 添加的数据 ),当添加的数据在Set集合中已经存在时,将不会再被添加进去
删除指定数据/清空集合:s.delete() / s.clear()
查找集合中有没有指定数据:s.has('糟心事')
判断集合中有多少元素:s.size
遍历数组:for ···· each 遍历;for····of es6新增的遍历方法
//声明一个 set
let s = new Set();
let s2 = new Set(['大事儿','小事儿','好事儿','坏事儿','小事儿']);//去重
//元素个数
console.log(s2.size);
//添加新的元素
s2.add('喜事儿');
//删除元素
s2.delete('坏事儿');
//检测
console.log(s2.has('糟心事'));
//清空
s2.clear();
console.log(s2);
for(let v of s2){
console.log(v);
}
2.3 Set集合实例
交集:第一个数组去重,然后判断去重后的数组中的项是不是在第二个数组中有没有,如果有,则过滤出来
并集:将两个数组合并,去重
差集:第一个数组去重,然后判断去重后的数组中的项是不是在第二个数组中有没有,如果没有,则过滤出来
let arr = [1,2,3,4,5,4,3,2,1];
//1. 数组去重
let result = [...new Set(arr)];
console.log(result); // [1, 2, 3, 4, 5]
//2. 交集
let arr2 = [4,5,6,5,6];
let result = [...new Set(arr)].filter(item => {
let s2 = new Set(arr2);// 4 5 6
if(s2.has(item)){
return true;
}else{
return false;
}
});
let result = [...new Set(arr)].filter(item => new Set(arr2).has(item));
console.log(result); // [4, 5]
//3. 并集
let union = [...new Set([...arr, ...arr2])];
console.log(union); // [1, 2, 3, 4, 5, 6]
//4. 差集
let diff = [...new Set(arr)].filter(item => !(new Set(arr2).has(item)));
console.log(diff); //[1, 2, 3]
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_45796592/article/details/128653163
```
```
```
-
```
-