JS Set详解
什么是Set?
在JavaScript中,Set是一种数据结构,它允许你存储无重复值的集合。Set对象允许你存储任何类型的唯一值,无论是原始值或者对象引用。
const mySet = new Set();
mySet.add(1);
mySet.add(2);
mySet.add(3);
mySet.add(1); // 重复添加同一个值
console.log(mySet); // Set(3) { 1, 2, 3 }
在上面的代码中,可以看到我们使用const mySet = new Set();
创建了一个名为mySet的Set对象。然后我们使用add()
方法向Set中添加值。值得注意的是,我们尝试两次向Set中添加值1,但由于Set只允许存储唯一值,所以重复添加的值会被忽略。
Set的常用方法
add()
add()
方法用于向Set对象中添加一个新的元素。如果Set中已经存在相同的元素,它将不会被添加。
const mySet = new Set();
mySet.add('apple');
mySet.add('orange');
mySet.add('banana');
mySet.add('apple'); // 重复添加
console.log(mySet); // Set(3) { 'apple', 'orange', 'banana' }
delete()
delete()
方法用于从Set对象中删除一个元素。
const mySet = new Set();
mySet.add('apple');
mySet.add('orange');
mySet.add('banana');
mySet.delete('orange');
console.log(mySet); // Set(2) { 'apple', 'banana' }
has()
has()
方法用于检查Set对象中是否存在某个元素。
const mySet = new Set();
mySet.add('apple');
mySet.add('orange');
mySet.add('banana');
console.log(mySet.has('apple')); // true
console.log(mySet.has('grape')); // false
clear()
clear()
方法用于清空Set对象中的所有元素。
const mySet = new Set();
mySet.add('apple');
mySet.add('orange');
mySet.add('banana');
mySet.clear();
console.log(mySet); // Set(0) {}
Set的迭代方法
keys()
keys()
方法返回一个包含Set对象中所有元素键的迭代器。
const mySet = new Set();
mySet.add('apple');
mySet.add('orange');
mySet.add('banana');
const keys = mySet.keys();
for(let key of keys) {
console.log(key);
}
/*
输出:
apple
orange
banana
*/
values()
values()
方法返回一个包含Set对象中所有元素值的迭代器。
const mySet = new Set();
mySet.add('apple');
mySet.add('orange');
mySet.add('banana');
const values = mySet.values();
for(let value of values) {
console.log(value);
}
/*
输出:
apple
orange
banana
*/
entries()
entries()
方法返回一个包含Set对象中所有元素键值对的迭代器。
const mySet = new Set();
mySet.add('apple');
mySet.add('orange');
mySet.add('banana');
const entries = mySet.entries();
for(let entry of entries) {
console.log(entry);
}
/*
输出:
[ 'apple', 'apple' ]
[ 'orange', 'orange' ]
[ 'banana', 'banana' ]
*/
Set的应用场景
Set通常用于存储一组唯一的值,比如去重、判断某个值是否存在等场景。另外,Set也可以用于将数组转换为去重后的集合。
const arr = [1, 2, 3, 1, 2, 4, 5];
const uniqueSet = new Set(arr);
console.log(Array.from(uniqueSet)); // [ 1, 2, 3, 4, 5 ]
总结
在本文中,我们详细介绍了JavaScript中的Set数据结构,包括创建Set对象、常用方法、迭代方法以及应用场景。Set是一种非常实用的数据结构,可以帮助我们轻松地处理一组唯一的值,避免重复数据的存储,提高数据处理效率。