Javascript 删除集合中的对象

Javascript 删除集合中的对象,javascript,Javascript,我不确定Javascript集是否被索引。根据我对其他编程语言的经验,它们通常不会被索引。我通过在JS中创建一个新集合进行了检查,并添加了一些值。然后我要求索引0和1的值,但它返回了未定义的,因此我假设它们没有索引 如何在JS中从集合中移除对象 例: 我用数据进行了检查。has({“val1”:[1,2,3]})但它返回了false,所以我假设代码行没有引用同一个对象。您可以转换为数组并使用如下索引删除 var data = new Set(); data.add({"val1" : [1,2,

我不确定Javascript集是否被索引。根据我对其他编程语言的经验,它们通常不会被索引。我通过在JS中创建一个新集合进行了检查,并添加了一些值。然后我要求索引0和1的值,但它返回了
未定义的
,因此我假设它们没有索引

如何在JS中从集合中移除对象

例:


我用
数据进行了检查。has({“val1”:[1,2,3]})
但它返回了false,所以我假设代码行没有引用同一个对象。

您可以转换为数组并使用如下索引删除

var data = new Set();
data.add({"val1" : [1,2,3]});
data.add({"val2" : [4,5,6]});
data.add({"val3" : [7,8,9]});

alert(data.size === 3); //true

data.delete([...data][1]); //Remove the middle object

alert(data.size === 2); //true
在这里拉小提琴

请考虑Set的兼容性表


希望这能有所帮助。

你是对的-它不是同一个参考。您必须存储该对象或使用带有唯一键的
映射。请尝试先搜索要删除的对象,然后使用data.delete()。您使用的是什么
库?ES6?填充胶?第三方图书馆?在支持对象作为值的
Set
库中,您必须提供完全相同的对象(不是等效对象)才能在集合中找到它。它不会查找具有相同属性的对象。它查找完全相同的对象引用(例如,将通过
==
的对象)。
var data = new Set();
data.add({"val1" : [1,2,3]});
data.add({"val2" : [4,5,6]});
data.add({"val3" : [7,8,9]});

alert(data.size === 3); //true

data.delete([...data][1]); //Remove the middle object

alert(data.size === 2); //true