从ES6集中删除属性的惯用方法是什么?

时间:2018-01-10 07:57:46

标签: javascript node.js ecmascript-6 set

我一直在阅读这里的设置文档https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/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.a === 1) {
    set.delete(entry);
  }
});

更多,如果我有一个非常大的集合(比如250K元素)并且我知道其中只有一个具有属性(比如id:92830932),我会想要在找到正确的一个后停止迭代。有没有办法更快地做到这一点?也许在set.values()迭代器或其他东西上一段时间?

0 个答案:

没有答案