一、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()
方法来获取数组中的重复项。
这是一个非常简单、简洁的方法,可以快速查找一组数据中的重复项。