Javascript 什么';从ES6集合中按属性删除元素的惯用方法是什么?

Javascript 什么';从ES6集合中按属性删除元素的惯用方法是什么?,javascript,node.js,ecmascript-6,set,Javascript,Node.js,Ecmascript 6,Set,我一直在阅读这里的文档集 我有一个对象集合,我想我想把它们从一个对象存储转换成一个集合存储。假设我有这样的代码: var a = {a:1}; var b = {b:2}; var c = {a:1, c:3}; var set = new Set(); set.add(a); set.add(b); set.add(c); 如果我不再拥有原始对象,用a:1删除项目的好方法是什么 我想出了这个。。。这是预期的方法吗 set.forEach(entry => { if (entry.

我一直在阅读这里的文档集

我有一个对象集合,我想我想把它们从一个对象存储转换成一个集合存储。假设我有这样的代码:

var a = {a:1};
var b = {b:2};
var c = {a:1, c:3};

var set = new Set();
set.add(a);
set.add(b);
set.add(c);
如果我不再拥有原始对象,用
a:1
删除项目的好方法是什么

我想出了这个。。。这是预期的方法吗

set.forEach(entry => {
  if (entry.a === 1) {
    set.delete(entry);
  }
});

此外,如果我有一个非常大的集合(比如250K个元素),并且我知道其中只有一个具有该属性(比如,
id:92830932
),那么一旦找到正确的元素,我就会停止迭代。有什么方法可以更快地做到这一点吗?也许在
set.values()
迭代器上有一段时间?

那么,对于
条目.a==1
,要删除的条目是什么
a
c
?看起来您想使用Map而不是set,因为您正在存储对象@AmitWagner我最终按照您的建议使用了Map。如果你回答,我就投你的票。如果不行,我就去做。