如何从地图对象中删除带有对象键的对象?
例如,如果我创建了一个名为members
的地图对象
const members = new Map();
这是在members
内添加新对象的正常方法
//members.set(key, value);
members.set('Evelyn',{name: 'Evelyn', age: 25});
//here's how can we delete this object
members.delete('Evelyn');
但是当我开始在es6中阅读有关地图对象的信息时,我很困惑,键也可以是对象!
地图是一个对象,可用于存储键-值对,其中键和值都可以是对象
如果是的话,我该如何删除带有对象键的那个?
//key as an object
members.set({id: 1}, {
name: 'Evelyn',
age: 30
});
答案 0 :(得分:2)
您需要使用相同的对象信息来设置键或搜索的相同对象引用。
var members = new Map,
id = 1,
key;
members.set({ id: 1 }, { name: 'Evelyn', age: 30 });
console.log([...members]); // one element
for (key of members.keys()) if (key.id === id) members.delete(key);
console.log([...members]); // []
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:1)
let objectKey = {id: 1};
members.set(objectKey, {
name: 'Evelyn',
age: 30
});
members.delete(objectKey);
据我所知,地图是通过参考进行比较的,所以这是唯一的方法。