set:
1.成员不能重复
2.只有键值,没有键名,有点类似数组
3.可以遍历,方法又add,delete,has
Map:
1.本质上是键值对的集合,类似集合;
2.可以遍历,方法很多,可以干跟各种数据格式转换
Set和Map主要的应用场景在于数据重组和数据存储
set 是一种叫做集合的数据结构,Map是一种叫做字典的数据结构
- Set 和 Map 主要的应用场景在于 数据重组 和 数据储存。
- Set 是一种叫做集合的数据结构,Map 是一种叫做字典的数据结构。
集合 与 字典 的区别:
- 共同点:集合、字典 可以储存不重复的值
- 不同点:集合 是以 [value, value]的形式储存元素,字典 是以 [key, value] 的形式储存
- 集合(Set):
-
// 去重数组的重复对象 let arr = [1, 2, 3, 2, 1, 1] [... new Set(arr)] // [1, 2, 3]
操作方法:
遍历方法:
Map:
- add(value):新增,相当于 array里的push。
- delete(value):存在即删除集合中value。
- has(value):判断集合中是否存在 value。
- clear():清空集合。
-
字典(Map):
是一组键值对的结构,具有极快的查找速度。
-
const m = new Map() const o = {p: 'haha'} m.set(o, 'content') m.get(o) // content m.has(o) // true m.delete(o) // true m.has(o) // false
-
操作方法:
- set(key, value):向字典中添加新元素。
- get(key):通过键查找特定的数值并返回。
- Keys():将字典中包含的所有键名以迭代器形式返回。
- values():将字典中包含的所有数值以迭代器形式返回。
- entries():返回所有成员的迭代器。
- forEach():遍历字典的所有成员。
- has(key):判断字典中是否存在键key。
- delete(key):通过键 key 从字典中移除对应的数据。
- clear():将这个字典中的所有元素删除。
-
总结:
Set:
- 成员唯一、无序且不重复。
- [value, value],键值与键名是一致的(或者说只有键值,没有键名)。
- 可以遍历,方法有:add、delete、has。
- 本质上是键值对的集合,类似集合。
- 可以遍历,方法很多可以跟各种数据格式转换。