es6中的Set和Map
- map的介绍它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。
-
1.Map是键值对,Set是值的集合本身是一个构造函数,当然键和值可以是任何的值;
2.Map可以通过get方法获取值,而set不能因为它只有值;
3.都能通过迭代器进行for…of遍历;
4.Set的值是唯一的可以做数组去重,Map由于没有格式限制,可以做数据存储
5.map和set都是stl中的关联容器,map以键值对的形式存储,key=value组成pair,是一组映射关系。set只有值,可以认为只有一个数据,并且set中元素不可以重复且自动排序。
- Set是一种叫做集合的数据结构
- Map是一种叫做字典的数据结构
- 应用场景:数据去重和数据存储
-
- 集合是由一组无序且唯一的项组成的,可以想象成集合是一个既没有重复元素,也没有顺序概念的数组
- ES6提供了新的数据结构Set,类似于数组,但是成员的值都是唯一的,没有重复的值
- Set本身是一个构造函数,用来生成Set数据结构的
属性
- size:返回字典所包含的元素个数
操作方法
- add(value): 添加某个值,返回Set结构本身
- delete(value):删除某个值,返回一个布尔值,表示删除是否成功
- has(value): 返回一个布尔值,表示该值是否为Set的成员
- clear(): 清除所有的成员,无返回值
- size: 返回Set数据结构的数据长度
遍历方法
- keys():返回键名的遍历器
- values(): 返回键值的遍历器
- entries():返回键值对的遍历器
- forEach():使用回调函数遍历每个成员,无返回值
Map 字典 类对象
- 类似于对象,也是键值对的集合,但是键的范围不限于字符串,各种类型的值都可以当作键,是一种更完善的Hash结构实现,如果你需要键值对的数据结构,Map 比 Object更合适
- 集合和字典的区别:
— 共同点:集合,字典可以存储不重复的值
— 不同点:集合是以[值,值]的形式存储元素,字典是以[键,值]的形式存储
属性
- size:返回字典所包含的元素个数
操作方法
- set(key,value): 向字典树中添加元素
- get(key):通过键值查找特性的数值并返回
- has(key): 如果键值存在字典中返回true,否则false
- delete(key): 通过键值从字典树中移除对应的数据
- clear(): 将找个字段中的所有元素删除
遍历方法
- keys(): 将字典中包含的所有键名以数组形式返回
- values(): 将字典中包含的所有数值以数组形式返回
- entries(): 返回键值对的遍历器