1. 程式人生 > >Web端 es6(基礎八)set-map資料結構

Web端 es6(基礎八)set-map資料結構

容器的區別

set

不允許重複 如果相同 不進行新增

筆記

set 的概念

 let set = new Set();
 set.add(7)
 set.add(5)
 set.add(5)
 console.log(set)
 // 輸出結果
 Set(2) {7, 5}
// 另外一種方法
let arr  = [1,2,3,4,5,5]
let list = new Set(arr)
console.log(list)
// 輸出結果
Set(5) {1, 2, 3, 4, 5}

// 型別不一致 也不會判重

let arr  = [4,5,'5']
let list
= new Set(arr) console.log(list) // 輸出結果 Set(3) {4, 5, "5"}

set 的常用操作

let arr = ['add','delete','clear','has']
let sets = new Set(arr)
console.log('has', sets.has('add'))
console.log('delete', sets.delete('add'),sets)
sets.clear()
console.log(sets)
// 輸出結果
has true
delete true Set(3) {"delete", "clear"
, "has"} Set(0) {}

WeakSet

其實這個 還涉及垃圾 回收機制, 這裡不做掩飾
只掩飾 與 set的差異

 let person1 = new Person("張三");
 let person2 = new Person("李四");
 let weakList = new WeakSet()
 // 只能新增結構
 weakList.add(person1)
 weakList.add(person2)
 console.log(weakList)
 // 輸出結果
 WeakSet {Person, Person}

Map的使用

let
map = new Map(); map.set("123",4) console.log(map,`value = ${map.get('123')}`) // 輸出結果 Map(1) {"123" => 4} "value = 4"
let map = new Map([['a',123],['b',456]]);
console.log("map args",map)
// 輸出結果
map args Map(2) {"a" => 123, "b" => 456}

map 常用操作

與 set的使用一致,這裡就不再繼續做demo了

WeakMap 的使用

key 值 跟 Set一樣 依舊要是個物件

 let weakMap = new WeakMap();
 weakMap.set({},"啦啦啦啦")
 console.log(weakMap)