Javascript教程(六)Map和Set
2018-05-22 本文已影响0人
klmhly
JavaScript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为键也是非常合理的.
为了解决这个问题,最新的ES6规范引入了新的数据类型Map
1. Map
Map是一组键值对的结构,具有极快的查找速度。
初始化Map需要一个二维数组,或者直接初始化一个空Map
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]); //初始化需要一个二维数组
m.get('Michael'); // 95
Map具有以下方法:
1.1 set()
添加新的key-value
var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
1.2 get()
获取某个键对应的值
m.get('Adam'); // 67
1.3 has()
判断是否存在某个key
m.has('Adam'); // 是否存在key 'Adam': true
1.4 delete()
删除key
m.delete('Adam'); // 删除key 'Adam'
2. Set
Set和Map类似,也是一组key的集合,但不存储value
要创建一个Set,需要提供一个Array作为输入,或者直接创建一个空Set.
重复的元素在set中自动被过滤,可以用这一特性对一个数组去重
var s1 = new Set(); // 空Set
var s2 = new Set([1, 2, 3,3]); // 含1, 2, 3
Set具有以下方法:
2.1 add()
可以添加元素到Set中
s.add(4);
s; // Set {1, 2, 3, 4}
2.2 delete()
删除元素
var s = new Set([1, 2, 3]);
s; // Set {1, 2, 3}
s.delete(3);
s; // Set {1, 2}