当前位置:首页>行业动态> 正文

c set取值js

在JavaScript中,可以使用Set对象来存储唯一值的集合。要给Set对象取值,可以使用Set构造函数创建一个新的Set实例,并通过add()方法添加元素,或者使用扩展运算符(…)将数组转换为Set

在JavaScript中,Set 是一个内置的对象类型,它允许你存储任何类型的唯一值,无论是原始值还是对象引用。Set 是 ES6(ECMAScript 2015)标准的一部分,它提供了一种简单而高效的方式来处理集合操作。

创建 Set

创建一个Set 可以使用new Set() 语法,你可以传入一个数组或者一系列参数来初始化这个Set

const mySet = new Set([1, 2, 3, 4, 5]);
console.log(mySet); // Set { 1, 2, 3, 4, 5 }

你也可以不传任何参数,创建一个空的Set

const emptySet = new Set();
console.log(emptySet); // Set {}

添加元素到 Set

使用add() 方法可以向Set 中添加元素,如果尝试添加一个已经存在的元素,Set 会忽略它,因为Set 只存储唯一值。

mySet.add(6);
mySet.add(3); // 3 已经存在,不会被重复添加
console.log(mySet); // Set { 1, 2, 3, 4, 5, 6 }

删除元素从 Set

使用delete() 方法可以从Set 中移除一个元素,这个方法返回一个布尔值,表示是否成功删除了该元素。

mySet.delete(2);
console.log(mySet); // Set { 1, 3, 4, 5, 6 }
console.log(mySet.delete(7)); // false,因为 7 不存在于 Set 中

检查元素是否存在于 Set

使用has() 方法可以检查一个元素是否存在于Set 中。

console.log(mySet.has(4)); // true
console.log(mySet.has(8)); // false

遍历 Set

有多种方式可以遍历Set

for…of 循环:这是最常见和推荐的方式。

for (let value of mySet) {
    console.log(value);
}
// 输出:
// 1
// 3
// 4
// 5
// 6

forEach() 方法:类似于数组的forEach() 方法。

mySet.forEach(value => {
    console.log(value);
});
// 输出与 for...of 相同

keys(), values(), entries() 方法:这些方法返回一个迭代器,可以用来遍历Set

for (let key of mySet.keys()) {
    console.log(key);
}
// 输出与 for...of 相同
for (let value of mySet.values()) {
    console.log(value);
}
// 输出与 for...of 相同
for (let [key, value] of mySet.entries()) {
    console.log(key + ' = ' + value);
}
// 输出:
// 1 = 1
// 3 = 3
// 4 = 4
// 5 = 5
// 6 = 6

Set 的其他方法

size:返回Set 中元素的数量。

console.log(mySet.size); // 5

clear():清空Set

mySet.clear();
console.log(mySet); // Set {}

Set 与数组的区别

特性Set数组
唯一性自动过滤重复项允许重复项
有序性插入顺序不保证插入顺序保证
操作方法add, delete, has, clear, sizepush, pop, shift, unshift, length
迭代方式keys, values, entriesindex, keys
性能某些操作(如查找)更快通用性强,但某些操作可能稍慢

相关问答FAQs

Q1: Set 可以存储哪些类型的数据?

A1:Set 可以存储任何类型的数据,包括原始值(字符串、数字、布尔值等)、对象引用以及函数,需要注意的是,两个对象即使内容相同,由于它们是不同的引用,也会被视为不同的元素。

Q2: 如何判断两个 Set 是否相等?

A2: 你可以使用Sethas() 方法和size 属性来判断两个Set 是否相等,如果两个Setsize 属性相同,并且对于第一个Set 中的每个元素,第二个Set 也包含相同的元素,那么这两个Set 就是相等的,你也可以将两个Set 转换为数组并比较数组,但这种方法可能会牺牲一些性能优势。

小编有话说:Set 是 JavaScript 中非常有用的数据结构,它提供了一种简单而高效的方式来处理唯一值的集合,无论是去重、交集、差集还是并集操作,Set 都能轻松应对,掌握好Set 的使用,可以让你的代码更加简洁和高效,希望本文能帮助你更好地理解和使用Set