🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[toc] ### 1.创建Map ``` let map = new Map() // Map(0) {size: 0} let map = new Map([ ['key1', 'value1'], ['key2', 'value2'], ]) // {'key1' => 'value1', 'key2' => 'value2'}[[Entries]]0: {"key1" => "value1"}1: {"key2" => "value2"}size: 2[[Prototype]]: Map ``` ### 2.操作Map ``` set: map.set('key1', 'value1') clear: 清空map所有值 delete: map.delete('key1') 删除其中的某一个值 entries: 返回一个新的迭代器对象 forEach: 遍历每一项 (value, key) has: 判断是否有该键,map.has('key2') // true keys: 迭代器返回的是keys values: 迭代器,返回的是 values ``` + forEach ``` map.forEach((value, key) => { console.log(value, key); }) ``` + values ``` for(let value of map.values()) { console.log(value); } ``` + entries ``` for(let item of map.entries()) { console.log(item); // [key, value] } ``` ### 3.弱引用类型 WeakMap 1.WeakMap可以通过set添加,但是key值必须是对象,否则会报错 ``` let wmap = new WeakMap() wmap.set('key11', 'value11') // Invalid value used as weak map key at WeakMap.set wmap.set({a: 1}, 'value11') // 正确 ``` 2.key为对象是为了保证,WeakMap类型不会被垃圾回收机制考虑,当没有对象的值没有被引用时会自动销毁 3.WeakMap没有values,keys,size等遍历类方法