Map和Set
是什么:
一组键值对
背景:
JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对。
但是JavaScript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为键也是非常合理的。
Map
Map是一组键值对的结构,具有极快的查找速度。
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael');
初始化Map需要一个二维数组,或者直接初始化一个空Map
var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.has('Adam');// 是否存在key 'Adam': true
m.get('Adam');
m.delete('Adam');
Set
Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key
要创建一个Set,需要提供一个Array作为输入,或者直接创建一个空Set
var s1 = new Set(); // 空Set
var s2 = new Set([1, 2, 3]); // 含1, 2, 3
s.add(4);//添加元素
s.delete(4);//删除元素