ES6 Map
Map:ES6 新的数据结构
Map 类似 Object 但 key 可以是各种类型的值(包括Object),而 Object 只能是字符串
常用方法:
set(key, value)
|
添加成员并返回WeakMap本身
|
get(key)
|
通过 键 获取 值
|
has(key)
|
通过 键 判断 成员 是否存在
|
size
|
获取长度
|
delete()
|
通过 键 移除 成员
|
clear()
|
清空Map
|
const obj1 = { name: "tom" }; const m = new Map(); const m1 = m.set(obj1, true) // 添加成员并返回Map本身 console.log(m, m1); console.log(m.get(obj1)); // 通过 键 获取 值 console.log(m.has(obj1)); // 通过 键 判断 成员 是否存在 console.log(m.size); // 获取长度 m.delete(obj1) // 通过 键 移除 成员 console.log(m); m.clear() // 清空Map
遍历方法:
keys
|
返回 key
|
values
|
返回 values
|
entries
|
返回 [key, value]
|
for of
|
返回 [key, value] 效果跟 entries 一样
|
forEach
|
返回 value 效果跟 values 一样
|
const obj1 = { name: "tom" }; const obj2 = { name: "anne" }; const obj3 = { name: "jack" }; const m = new Map(); m.set(obj1, 'tom') m.set(obj2, 'anne') m.set(obj3, 'jack') console.log(m); // keys():返回 key for (const item of m.keys()) { console.log(item) // 结果:{ name: "tom" } { name: "anne" } { name: "jack" } } // values():返回 values for (const item of m.values()) { console.log(item) // 结果:tom anne jack } // entries():返回 [key, value] for (const item of m.entries()) { console.log(item) } // 返回 [key, value] 效果跟 entries 一样 for (const item of m) { console.log(item) } // 返回 value 效果跟 values 一样 m.forEach(item => { console.log(item) })