ES6 Map 和 WeakMap
阿新 • • 發佈:2020-09-04
Map儲存是以鍵值對的形式存在
- let map = new Map([[key,value],[key2,value2]])
- map.set(key,value)
- map.get(key)
- map.delete(key)
- map.has(key)
- map.clear()
- // map中key可以是任意的屬性,比如數字、字串、物件、bool...
// Map 它的key鍵名的型別不再侷限於字串型別了,它可以是各種型別的值 let m = new Map([ ['name', 'wangeu'], [12, 15], [null, 6], [{name:'zhaosi'}, 7] ]) console.log(m); // size屬性 獲取例項的成員數。 console.log(m.size); //4 ///set() 給例項設定一對鍵值對,返回map例項。 m.set('hobby', 'sing'); console.log(m); m.set(undefined, 8); console.log(m); // m.set(Symbol('name'), 9); console.log(m); //get方法 獲取指定鍵名的鍵值,返回鍵值。 console.log(m.get('name')); //wangeu //delete方法刪除指定的鍵值對,刪除成功返回:true,否則返回:false。 console.log(m.delete('name')); //true console.log(m.get('name')); //undefined //has方法 判斷Map例項內是否含有指定的鍵值對,有就返回:true,否則返回:false。 console.log(m.has(null)); //true // entries( )方法作用:返回例項的鍵值對遍歷器。 console.log(m.entries()); console.log(m.entries().next());// keys( )方法:返回例項所有鍵名的遍歷器。 // values( ) 方法:返回例項所有鍵值的遍歷器。 console.log(m.keys()); console.log(m.keys().next()); console.log(m.values()); console.log(m.values().next()); //forEach方法 m.forEach(function (value, key) { console.log(key + ':' + value); }); /// clear() 刪除所有鍵值對。 m.clear(); console.log(m); //Map(0) {}
遍歷map
map.forEach((value,key)=>{})WeakMap
WeakMap的鍵只能是引用型別 new WeakMap()- set
- get
- delete
- has
- clear