如何使用 JavaScript 从集合中删除元素

要从 Set 中删除元素,请调用 delete() 方法,将值作为参数传递给它。 如果该值存在于 Set 中,则将其从 Set 对象中删除并返回 true,否则该方法返回 false。

const set1 = new Set(['one', 'two', 'three']);

set1.delete('two');

console.log(set1); // ?️ {'one', 'three'}

console.log(set1.has('two')); // ?️ false

我们使用 Set.delete 方法从 Set 中删除一个元素。

该方法采用的唯一参数是我们要删除的值。

const set1 = new Set(['one', 'two', 'three']);

console.log(set1.delete('two')); // ?️ true
console.log(set1.delete('four')); // ?️ false

如果需要从 Set 中删除对象或数组,则需要有对象/数组的引用,或者使用 forEach 方法获取引用。

const set1 = new Set([{id: 1}, {id: 2}]);

console.log(set1); // ?️ {{id: 1}, {id: 2}}

set1.forEach(obj => {
  if (obj.id === 2) {
    set1.delete(obj);
  }
});

console.log(set1); // ?️ { {id: 1} }

我们使用 Set.forEach 方法迭代 Set 并获取对我们要删除的对象的引用。

如果我们有对该对象的直接引用,则有一种更简单的方法可以做到这一点。

const obj = {id: 1};
const set1 = new Set([obj, {id: 2}]);

set1.delete(obj);

console.log(set1); // ?️ { {id: 2} }

在大多数情况下,我们不会直接引用要从 Set 中删除的对象/数组,因此使用 forEach 方法是一个很好的选择。