📜  JavaScript 中 Set.clear() 和 Set.delete() 方法的区别(1)

📅  最后修改于: 2023-12-03 15:01:40.205000             🧑  作者: Mango

JavaScript 中 Set.clear() 和 Set.delete() 方法的区别

在 JavaScript 中,Set 是一种用于存储唯一值(primitive types 或者对象引用)的集合。Set 提供了一些方法来操作其元素,包括 clear() 和 delete() 方法,但这两个方法的作用有所不同。

Set.clear()

Set.clear() 方法用于清空 Set 对象中的所有元素。它不接受任何参数,并且不返回任何内容。

用法
const mySet = new Set();

mySet.add(1);
mySet.add(2);
mySet.add(3);

console.log(mySet); // 输出 Set { 1, 2, 3 }

mySet.clear();

console.log(mySet); // 输出 Set {}
解释

上述代码先创建了一个空的 Set 对象 mySet,然后使用 add() 方法向其中添加了 3 个元素。调用 clear() 方法后,mySet 中的元素全部被清空。

Set.delete()

Set.delete() 方法用于删除 Set 对象中指定的元素。它接受一个参数,即要删除的元素值,如果该元素存在于 Set 中,则返回 true。否则返回 false。

用法
const mySet = new Set();

mySet.add(1);
mySet.add(2);
mySet.add(3);

console.log(mySet); // 输出 Set { 1, 2, 3 }

mySet.delete(2);

console.log(mySet); // 输出 Set { 1, 3 }
解释

上述代码首先创建了一个 Set 对象 mySet,然后向其中添加 3 个元素。调用 delete() 方法后,删除了值为 2 的元素。最终输出的 Set 只包含值为 1 和 3 的元素。

需要注意的是,如果要删除的元素不存在于 Set 中,delete() 方法也会返回 true。因此,我们需要结合 has() 方法来判断元素是否存在于 Set 中:

const mySet = new Set();

mySet.add(1);
mySet.add(2);
mySet.add(3);

console.log(mySet); // 输出 Set { 1, 2, 3 }

console.log(mySet.has(2)); // 输出 true

mySet.delete(2);

console.log(mySet.has(2)); // 输出 false
总结

Set.clear() 方法用于清空 Set 对象中的所有元素,而 Set.delete() 方法用于删除 Set 对象中指定的元素。两者的用法和返回值都不相同,需要根据不同的需求来选择使用。