Skip to content

一、JS的set对象的基本用法

javaScript 的 Set 类型表示一组不重复的值,每个值都叫作一个集合元素。

JavaScript 中有两种方式可以创建 Set:

js
const set1 = new Set();
const set2 = new Set([1, 2, 3, 4, 5]);

第一种方式创建了一个空的 Set,而第二种方式创建了一个包含 5 个元素的 Set。

你可以使用 set.add(value) 方法向 Set 中添加元素。

如果你想知道 Set 中是否包含某个值,可以使用 set.has(value) 方法。

例如:

js
const set = new Set([1, 2, 3, 4, 5]);

set.add(6);
console.log(set.has(6));  // true

set.delete(5);
console.log(set.has(5));  // false

另外,你还可以使用 set.size 属性获取 Set 中元素的个数,或者使用 set.clear() 方法清空 Set。

下面是一个完整的例子,它使用了 Set 的多种方法:

js
const set = new Set();

console.log(set.size);  // 0

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

console.log(set.has(1));  // true
console.log(set.has(4));  // false

console.log(set.size);  // 3

set.delete(2);

console.log(set.has(2));  // false

set.clear();

console.log(set.size);  // 0

请注意,Set 中的元素是无序的,且不能重复。

因此,Set 在某些情况下会比数组更加方便和有用。

例如,你可以使用 Set 快速判断一组数据中是否包含重复项。

二、使用 Set 快速判断一组数据中是否包含重复项

可以使用 Set 的 add() 方法快速判断一组数据中是否包含重复项。

举个例子,如果你想判断一个数组是否包含重复项,可以这样写:

js
const arr = [1, 2, 3, 4, 5, 1];
const set = new Set(arr);

if (set.size !== arr.length) {
  console.log('The array contains duplicate items');
} else {
  console.log('The array does not contain duplicate items');
}

在这个例子中,我们将数组传递给 Set 的构造函数,然后使用 set.size 属性来比较 Set 和数组的长度。

如果两者长度不同,则说明数组中包含重复项。

如果你想获取数组中的重复项,可以这样写:

js
const arr = [1, 2, 3, 4, 5, 1];
const set = new Set(arr);

const duplicates = arr.filter(item => !set.has(item));

console.log(duplicates);  // [1]

在这个例子中,我们再次将数组传递给 Set 的构造函数,然后使用 filter() 方法和 set.has() 方法来获取数组中的重复项。

这是一个非常简单、简洁的方法,可以快速查找一组数据中的重复项。

image-20221210194252192

前端三评为个人技术博客,你可与我联系(v:imqdcnn),未经许可禁止任何形式的转载