ECMAScript-新的資料結構Map

東東愛編碼發表於2020-10-25

一、ECMAScript-新的資料結構Set
1. 一種新的資料結構

結構類似於物件,鍵值對的集合。Map 結構提供了“值—值”的對應,是一種更完善的 Hash 結構實現。

let m = new Map()
let obj = { name: 'zhangsan'}
m.set('zhangsan', obj) 
2. 常用方法
// 新增
let m = new Map()
let obj = { name: 'zhangsan'}
m.set('zhangsan', obj) 

// 獲取
m.get('zhangsan')

// delete
m.delete('zhangsan')

// has
m.has('zhangsan')

// 傳入陣列
let m = new Map([['name','zhangsan'],['age', 5]])
console.log(m)

// size
m.size

// 清空
m.clear()
3. 遍歷
// forEach 
let m = new Map([['name','zhangsan'],['age', 5]])
// 第一個引數是value 
// 第二個引數是key
m.forEach(value, key) => {
  console.log(key + ' ' + value)
})
// for of
// 第一個引數是key
// 第二個引數是value
for(let [key, value] of m) {
    console.log(key + ' ' + value)
}

// map.keys()
// map.values()
// map.entries()
4. 應用場景
// 基本object應用到的場景,map都可以應用
// 尤其是在後端介面返回的資料,需要重新過濾組裝的時候,map經常會被用到
5. WeakMap
// key 必須是引用資料型別
// WeakMap不支援clear
// WeakMap不可遍歷
// WeakMap沒有size
// 弱引用
let wm = new WeakMap()
wm.set([1,2,3], 'zhangsan')

相關文章