我在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;
    }
});

08-05 17:47