1. 程式人生 > 實用技巧 >ES6 Map 和 WeakMap

ES6 Map 和 WeakMap

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