es6 新增 set 和 map数据结构以及应用场景

https://www.cnblogs.com/sexintercourse/p/12269580.html

Set数据容器,这是一个能够存储无重复值的有序列表。

1. 创建集合 set

let set = new Set(['A','B','C']);
console.log(set);

2. 属性--size

console.log(set.size)

3. 方法

3.1 set.add( )

set.add('D').add('E')
console.log(set);

3.2 set.delete( )

1 set.delete("E");
2 console.log(set);

3.3 set.has( )

console.log(set.has("A"));//返回boolean


3.4 set.clear( )

1 set.clear();
2 console.log(set);//清除集合内部数据


3.5 set.forEach( )

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

Map 类似于对象,但普通对象的 key 必须是字符串或者数字,而 Map 的 key 可以是任何数据类型... 

1.创建集合map

 const map = new Map();
  map.set(100, 'fsd').set('key', 'value')  等同于  const map = new Map([[100, 'fsd'],['key', 'value']]);    //二维数组
  
  console.log(map)  // Map(2) {100 => 'fsd', 'key' => 'value'}

Map 实例的属性和方法如下:

  • size:获取成员的数量
  • set:设置成员 key 和 value
  • get:获取成员属性值
  • has:判断成员是否存在
  • delete:删除成员
  • clear:清空所有
const map = new Map();
map.set('aaa', 100);
map.set('bbb', 200);

map.size // 2

map.get('aaa') // 100

map.has('aaa') // true

map.delete('aaa')
map.has('aaa') // false

map.clear()

Map 实例的遍历方法有:

  • keys():返回键名的遍历器。
  • values():返回键值的遍历器。
  • entries():返回所有成员的遍历器。
  • forEach():遍历 Map 的所有成员。
  • const map = new Map();
  • map.set('aaa', 100);
  • map.set('bbb', 200);

keys方法获取key值是,获取到的不是一个真实的数组,而是类似于 Set 数据类型,可以只用Array.from()或者展开运算符...,转成真数组

  const map = new Map();
  map.set(100, 'fsd').set('key', 'value')
  console.log(map.keys())  //MapIterator {100, 'key'}
原文地址:https://www.cnblogs.com/shun1015/p/15648574.html