一、定义:map是一种新的集合类型,是JavaScript真正的键/值存储机制。
二、基本API:
- 创建映射
// 使用new关键字和Map构造函数可以创建一个空映射 const m = new Map(); console.log(m); // Map(0) {} // 使用嵌套数组初始化映射 const m1 = new Map([['key1','value1'],['key2','value2'],['key3','value3']]) console.log(m1); // {"key1" => "value1", "key2" => "value2", "key3" => "value3"} // 使用自定义迭代器初始化映射 const m2 = new Map({[Symbol.iterator]: function*(){ yield ['key1','value1']; yield ['key2','value2']; yield ['key3','value3']; }}) console.log(m2); // {"key1" => "value1", "key2" => "value2", "key3" => "value3"} // 映射期待的键/值对,无论是否提供 const m3 = new Map([[]]); console.log(m3.has(undefined)); // true console.log(m3.get(undefined)); // undefined
-
API:
const m = new Map(); console.log(m.has("firstName")); // false判断是否有该键 console.log(m.get("firstName")); // undefined获取该map的值 console.log(m.size); // 0获取键值对的数量 m.set("firstName", "Matt") // 为该map添加键值对 .set("lastName", "Frisbie"); console.log(m.has("firstName")); // true console.log(m.get("firstName")); // Matt console.log(m.size); // 2 m.delete("firstName"); // 只删除这一个键/值对 console.log(m.has("firstName")); // false console.log(m.has("lastName")); // true console.log(m.size); // 1 m.clear(); // 清除这个映射实例中的所有键/值对 console.log(m.has("firstName")); // false console.log(m.has("lastName")); // false console.log(m.size); // 0
-