一、应用场景
Set 和 Map 主要的应用场景在于数据重组和数据存储。
二、数据结构
Set 是一种集合的数据结构,Map 是一种字典的数据结构。
集合与字典的区别:
集合、字典可以存储不重复的值,不过,集合是以 [value, value] 的形式存储元素,字典是以 [key, value] 的形式存储。
三、集合 Set
Set 是 ES6 新增的一种新的数据结构,内部元素没有重复的值(成员唯一),并允许存储任何类型的唯一值。
方法汇总:
- add(value):新增、添加
- has(value):判断集合中是否有value
- delete(value):删除
- clear():清空
- keys():返回一个包含集合中所有键
- values():返回一个包含集合中所有键值
- entries():返回集合中所有元素
- forEach():遍历
let set = new Set();
[1, 2, 3, 1].forEach(x => set.add(x));
for(let s of set) {
console.log(s); // 1 2 3
}
四、字典 Map
Map 是一组键值对的结构,具有极快的查找速度。
方法汇总:
- set(key, value):新增、添加
- get(key):通过键查找对应的键值
- has(key):判断字典中是否存在键key
- delete(key):删除
- clear():清空
- keys():返回一个包含字典中所有键
- values():返回一个包含字典中所有键值
- entries():返回字典中所有元素
- forEach():遍历
let m = new Map();
let arr = [
{
id: 1,
title: '新品推荐'
},
{
id: 2,
title: '家电家器'
}
];
arr.map(x => m.set(x.id: x.title))
for(let i of m) {
console.log(i); [1, '新品推荐'] [2, '家电家器']
}
注意:arr.map() 作用是进行遍历向 Map 中添加元素。