- Map是一种新的集合类型,为这门语言带来了真正的键值存储机制。
- Map的大多数特性都可以通过Object类型实现。
基本API
const m = new Map();
// 使用嵌套数组初始化映射
const m1 = new Map([
["key1", "val1"],
["key2", "val2"],
["ket3", "val3"]
]);
alert(m1.size); // 3
// 使用自定义迭代器初始化映射
const m2 = new Map({
[Symbol.iterator]: function*() {
yield ["key1", "val1"];
yield ["key2", "val2"];
}
});
alert(m2.size); // 2
// 映射期待的键值对,无论是否提供
const m3 = new Map([]);
alert(m3.has(undefined)) // true
// 注意:浏览器环境和Node环境下,m3.has(undefined)返回的结果不同;浏览器环境默认Map(1) {undefined => undefined}
// 而Node环境,则m3返回Map(0){},所以m3.has(undefined)返回false。
-
set():添加键值对
-
get():查询
-
has():查询
-
size:获取映射中的键值对
-
delete():删除指定键值对
-
clear():清除该映射实例中所有键值对
-
set()方法返回映射实例,因此可以把多个操作连缀起来,包括初始化声明