javascript-在地图中删除而不是删除作为对象的键

前端之家收集整理的这篇文章主要介绍了javascript-在地图中删除而不是删除作为对象的键 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我创建了一个地图对象

var map_obj = new Map();
map_obj.set({'a':2,'b':3},{'c': 4});

现在当我尝试使用.delete运算符时

map_obj.delete({‘a’:2,’b’:3})

它向我显示错误,并且不会删除键和值.可能是正在检查对象引用并创建新对象,因此找不到相等的对象.
在MDN guide中,据说密钥可以是任何类型.那么,这里发生了什么,删除密钥的正确方法是什么?

这是在es-6中定义删除过程的方式

最佳答案
最简单的方法是将对象引用存储到变量.

var map_obj = new Map(),object = { a: 2,b: 3 };

map_obj.set(object,{'c': 4});
console.log([...map_obj]);

map_obj.delete(object);
console.log([...map_obj]);
.as-console-wrapper { max-height: 100% !important; top: 0; }

如果对象只有一部分,则需要通过比较对象来找到该对象.

var map_obj = new Map(),a = 2,b = 3,key;

map_obj.set({ a: 2,b: 3 },{'c': 4});
console.log([...map_obj]);

key = Array.from(map_obj.keys()).find(o => o.a === a && o.b === b);

map_obj.delete(key);
console.log([...map_obj]);
.as-console-wrapper { max-height: 100% !important; top: 0; }
原文链接:https://www.f2er.com/js/531104.html

猜你在找的JavaScript相关文章