Map
Map类似于对象,也是键值对的集合, 但是“键”的范围不限于字符串,各种类型的值(包括 对象)都可以当作键。 Object 结构提供了“字符串—值”的对应,Map结构提供了“值— 值”的对应 Map 可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。 var map = new Map([ [‘name’, ‘张三’], [‘title’, ‘Author’] ]);
Map API
Map.prototype.size 返回 Map 结构的成员总数。
Map.prototype.set(key, value) set方法设置键名key对应的键值为value,然后返回整个map结构。如果key已经有值,则键值会被更新,否则就新生成该键。 Map.prototype.get(key) get方法读取key对应的键值,如果找不到key,返回undefined。
Map.prototype.has(key) has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。
Map.prototype.delete(key)delete方法删除某个键,返回true。如果删除失败,返回false。
Map.prototype.clear() 清除所有成员,没有返回值
Map.prototype.keys() 返回键名的遍 历器
Map.prototype.values() 返回键值的遍历器
Map.prototype.entries() 返回键值对的遍历器
Map.prototype.forEach() 使用回调函数遍历每个成员
Map 与 Array的转换
var kvArray = [["key1", "value1"], ["key2", "value2"]];
// Map 构造函数可以将一个 二维 键值对数组转换成一个 Map 对象
var myMap = new Map(kvArray);
// 使用 Array.from 函数可以将一个 Map 对象转换成一个二维键值对数组
var outArray = Array.from(myMap);