鍍金池/ 問答/HTML/ ES6中刪除key為空的map項

ES6中刪除key為空的map項

道上規(guī)矩 先上代碼

let mp = new Map();
mp.set({}, 'obj11');
mp.set({}, 'obj12');
mp.set([], 'obj21');
mp.set([], 'obj22');


//get test
mp.get({})    //undefined
mp.get([])    //undefined

//delete test 
mp.delete({})    //false
mp.delete([])    //false     

發(fā)現(xiàn)可以設置空的對象和數(shù)組 但是都無法取得或者刪除,這是怎么回事呢 尋求正確的打開姿勢!

回答
編輯回答
胭脂淚

set() 方法為Map對象添加一個指定鍵(key)和值(value)的新元素。

var mp = new Map(), a = {}, var b = [];
mp.set(a, 'this is a');
mp.get(a); //"this is a"
mp.set(b, 'this is b');
mp.get(b); //"this is b"
mp.delete(a)//true
mp.delete(b)//true
mp.get(a) //undefined
mp.get(b) //undefined
2018年2月26日 22:15
編輯回答
礙你眼
console.log([] === []) // false

每次都是一個新對象,你要先保留引用

let arr = []

再去 set 和 get 就可以了

2018年6月16日 05:41