首先,先确定你的浏览器是否支持ECMAscript6,方法是执行以下代码:
'use strict';
var m = new Map();
var s= new Set();
alert('你的浏览器支持Map和Set!');
如果浏览器报ReferenceError错误,那么你需要换一个支持ES6的浏览器。
1.Map
Map是一组键值对的结构,查找速度快。
var m = new Map([['Bob', 100], ['Jhon', 85], ['Mike', 66]]);
m.get('Bob'); // 100
初始化Map需要一个二维数组,或者直接初始化一个空MapMap具有以下方法:
var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.set('Bob', 59);
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // 删除key 'Adam'
m.get('Adam'); // undefined
注意:一个键只能有一个值。
2.Set
Set和Map相似,Set的特点是不会存储value,只会存储不重复的key。
var s1 = new Set(); // 空Set
var s2 = new Set([1, 2, 3]); // 含1, 2, 3
var s = new Set([1, 2, 3, 3, '3']);
s; // Set {1, 2, 3, "3"}
通过add(key)方法可以向Set中添加key,可以重复添加相同的元素,但是不会有效果。
通过delete(key)方法删除已有的key
s.add(4);
//s {1, 2, 3, 4}
s.add(4);
//s {1, 2, 3, 4}
s.delete(4);
//s {1,2,3}