我在js Map对象中有一些对象。我们如何删除具有特定键和值的对象?
let newMap = new Map()
newMap.set('1', {ep: '1', name: 'First test'})
newMap.set('2', {ep: '2', name: 'Second test'})
因此,以上示例在newMap中包含两个对象。如何删除ep值为'1'的对象,以便newMap哈希仅返回一个对象,即
{ep: '2', name: 'Second test'}
。 最佳答案
您已将其存储在键'1'
下。因此,您使用该键调用delete
:
newMap.delete('1');
如果您不知道将其存储在其下的键,则
Map
可能不是您想要的结构,但是您可以通过遍历entries
来找到它,它返回一个数组,该数组的项为格式:for (const entry of newMap.entries()) { // for-of is ES2015+
if (entry[1].ep === '1') {
newMap.delete(entry[0]);
break;
}
}
...或使用ES5:
newMap.entries().some(function(entry) {
if (entry[1].ep === '1') {
newMap.delete(entry[0]);
return true;
}
});