= 集合操作

== Map
[source,javaScript]
----
# 创建实例
let map = new Map();
let map2 =new Map([
    ['A',1],
    ['B',2]
]);

# 添加 key-value
map.set('A',1);

map2.set('C',3)
    .set('D',4);

# 通过 key 获取值
map.get('A');

# 是否存在
map.has('A');

# 删除
map.delete('A');

# 获取 size
let size =map.size;

# 清空数据
map.clear();

# 使用 keys() 遍历
for (let key of map.keys()) {
    console.log(key);
}

# 使用 values() 遍历
for (let value of map.values()) {
    console.log(value);
}

# 同时遍历
for (let [key, value] of map) {
    console.log(key, value);
}

#
----

== Set 常用方法

[source,javaScript]
----
// 数组去重
var mySet = new Set([1, 2, 3, 4, 4]);
[...mySet]; // [1, 2, 3, 4]

// 并集
var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var union = new Set([...a, ...b]); // {1, 2, 3, 4}

// 交集
var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var intersect = new Set([...a].filter(x => b.has(x))); // {2, 3}

// 差集
var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var difference = new Set([...a].filter(x => !b.has(x))); // {1}
----