let key = [1,2] let m = new Map() m.set(key, "12") console.log(m.get(key)) // 12 console.log(m.get([1,2])) // undefined
為什麼當我想要取得值時不是透過鍵變數的名稱而是透過值[1,2]取得值時,卻沒有這個東西 如果你添加這樣
m.set([1,2], "12") m.set([1,2], "123") m.set([1,2], "1234")
關於地圖將會
Map(4) { (2) […] → "12", (2) […] → "12", (2) […] → "123", (2) […] → "1234" }
size: 4
<entries>
0: Array [ 1, 2 ] → "12"
1: Array [ 1, 2 ] → "12"
2: Array [ 1, 2 ] → "123"
3: Array [ 1, 2 ] → "1234"
使用
===運算子來比較金鑰。數組是對象,===比較對象的引用,而不是它們的值。[1, 2] === [1, 2]傳回false因為每個物件/陣列文字都會建立對新物件的新參考。這就是原因使用三個不同的鍵插入三個值以及原因
返回
undefined。