Set.prototype.delete()

delete() 方法从 Set 对象中删除指定的值(如果该值在 Set 中)。

尝试一下

语法

js

delete(value)

参数

value

要从 Set 中移除的值。

返回值

成功删除返回 true,否则返回 false

示例

使用 delete() 方法

js

const mySet = new Set();
mySet.add("foo");

console.log(mySet.delete("bar")); // 返回 false,不包含 "bar" 这个元素
console.log(mySet.delete("foo")); // 返回 true,删除成功

console.log(mySet.has("foo")); // 返回 false,"foo" 已经成功删除

从 Set 中删除对象

因为对象是通过引用比较的,所以如果没有对原始对象的引用,就必须通过检查单个属性来删除它们。

js

const setObj = new Set(); // 创建一个新 set

setObj.add({ x: 10, y: 20 }); // 在 set 中添加对象

setObj.add({ x: 20, y: 30 }); // 在 set 中添加对象

// 删除任何 'x > 10' 的点
setObj.forEach((point) => {
  if (point.x > 10) {
    setObj.delete(point);
  }
});

规范

Specification
ECMAScript Language Specification
# sec-set.prototype.delete

浏览器兼容性

BCD tables only load in the browser

参见