简体   繁体   English

如何从地图对象中删除带有对象键的对象?

[英]how to delete an object with an object key from a map object?

how to delete an object with an object key from a map object? 如何从地图对象中删除带有对象键的对象?

for example if i created a map object called members 例如,如果我创建了一个名为members的地图对象

const members = new Map();

here's the normal way for adding a new object inside members 这是在members添加新对象的常规方法

//members.set(key, value);
members.set('Evelyn',{name: 'Evelyn', age: 25});
//here's how can we delete this object 
members.delete('Evelyn');

but when i started reading about map objects in es6 i was confused that the keys can be an object too!! 但是当我开始阅读es6中的地图对象时,我感到困惑的是键也可以成为一个对象!

Map is an object that lets you store key-value pairs where both the keys and the values can be objects Map是一个对象,允许您存储键值对,其中键和值都可以是对象

if so how can i delete the one with the object key ? 如果是这样我怎么能删除对象键的那个?

//key as an object
members.set({id: 1}, {
 name: 'Evelyn',
 age: 30
});

You need eiter the same object reference of the key or seach with some infomation of the object. 您需要使用对象的相同对象引用或对象的某些信息进行搜索。

 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; } 

let objectKey = {id: 1};
members.set(objectKey, {
 name: 'Evelyn',
 age: 30
});

members.delete(objectKey);

As of my knowledge Maps compare via reference so this would be the only way. 据我所知,地图比较通过参考,所以这将是唯一的方式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM