JavaScript Set 必备攻略:深化了解 Set 的特性和办法

一. 了解 Set

1. 概念和用处

Set 是 JavaScript 中的一种调集(collection)数据结构,它类似于数组,可是调集中的元素是仅有的,不允许重复。Set 供给了一种存储不重复数值或目标的机制,可以用于存储一组仅有的值,而且具有一些方便的办法来操作这些值。

2. 为什么运用 Set

  • 仅有性: Set 中的元素是仅有的,不允许重复。这使得 Set 成为一种方便的去重东西,可以快速地除掉数组或其他数据结构中重复的元素。
  • 功能优势: 由于 Set 的内部完结运用了哈希表等高效数据结构,因此在查找和刺进元素时具有较好的功能,特别是在处理大量数据时,运用 Set 可以提高处理功率。
  • 丰厚的办法: Set 供给了丰厚的操作办法,如增加元素、删去元素、查找元素、调集运算等,使得开发者可以方便地对调集进行操作。

JavaScript 的 Set 数据结构供给了一种高效、方便且具有仅有性的调集存储机制,适用于处理需求仅有性数据的场景,例如去重、符号已拜访元素等。

二. 创立 Set

1. 运用结构函数创立 Set

在 JavaScript 中,您可以运用 Set 结构函数来创立一个新的 Set 实例。详细操作如下:

// 创立一个空的 Set
let mySet = new Set();
// 创立包括初始元素的 Set
let initialSet = new Set([1, 2, 3, 4, 5]);

2. 增加元素到 Set

可以运用 add 办法将元素增加到 Set 中,保证每个元素都是仅有的,不会重复增加:

// 创立一个空的 Set
let mySet = new Set();
// 增加元素到 Set
mySet.add(1);
mySet.add(2);
mySet.add(3);

3. 从数组创立 Set

可以运用数组的元素来创立一个 Set 实例,数组中的重复元素将被自动去重:

// 创立一个包括重复元素的数组
let duplicatesArray = [2, 3, 4, 4, 5, 5];
// 运用数组来创立 Set,一起来去重
let uniqueSet = new Set(duplicatesArray);
// 此刻 uniqueSet 为 {2, 3, 4, 5}

经过上述办法,您可以很容易地创立 Set 并向其间增加元素,也可以经过数组快速地创立并去重一个 Set 目标。

三. Set 的特性

Set 是一种数据结构,它包括一组仅有且无序的值。在 JavaScript 中,Set 以目标的形式存在,其间的值只能呈现一次。以下是 Set 的一些特性阐明:

1. 仅有性

Set 中的值有必要是仅有的。假如将相同的值参加 Set 屡次,只会存储一次这使得 Set 成为去重数据的想结构。

let uniqueSet = new Set();
uniqueSet.add(1);
uniqueSet.add(2);
uniqueSet.add(1);
console.log(uniqueSet); // 输出: Set(2) {1, 2}

JavaScript Set 必备攻略:深化了解 Set 的特性和办法

2. 无序性

在 Set 中,值的排列次序不是照刺进的次序来决定的。这意味着无法依赖 Set 的次序性进行操作。

let unorderedSet = new Set();
unorderedSet.add(3);
unorderedSet.add(1);
unorderedSet.add(2);
console.log(unorderedSet); // 输出: Set(3) {3, 1, 2}

JavaScript Set 必备攻略:深化了解 Set 的特性和办法

3. 可迭代性

Set 是可经过迭代器进行遍历,可以运用 for… 循环或许 Array.from 办法将 Set 转化数组。

let iterableSet = new Set([1, 2, 3]);
for (let item of iterableSet) {
  console.log(item);
}
// 输出:
// 1
// 2
// 3

JavaScript Set 必备攻略:深化了解 Set 的特性和办法

4. 长度特点

Set 实例有 size 特点,表明 Set 中值的数量。

let sizedSet = new Set([1, 2, 3, 4, 5]);
console.log(sizedSet.size); // 输出: 5

JavaScript Set 必备攻略:深化了解 Set 的特性和办法

5. 增加和删去

Set 具有增加值的 add 办法,移值的 delete 办法,以及清空所有值的 clear 办法。

let addDeleteSet = new Set();
addDeleteSet.add(1);
addDeleteSet.add(2);
console.log(addDeleteSet); // 输出: Set(2) {1, 2}
addDeleteSet.delete(1);
console.log(addDeleteSet); // 输出: Set(1) {2}
addDeleteSet.clear();
console.log(addDeleteSet); // 输出: Set(0) {}

JavaScript Set 必备攻略:深化了解 Set 的特性和办法

6. 判断值是否存在

可以运用 has 办法来查看某一特定值是否存在 Set 中。

let hasSet = new Set([1, 2, 3]);
console.log(hasSet.has(2)); // 输出: true
console.log(hasSet.has(4)); // 输出: false

JavaScript Set 必备攻略:深化了解 Set 的特性和办法

7. 引证

在 Set 中存储的值弱引证的,意味着假如没有其他引证指向 Set 中的某个值,那么这个值可能会被废物回收。

总的来说 Set 是一种十分有用的数据结构,特别适用于需求存储唯值而且不需求考虑次序的状况。它的高效去重能力和调集操作特性,使得它在实践开发中有着广泛的使用。

四. Set 的办法

1. 增加元素:add()

运用 add() 办法向 Set 中增加新的元素。

let mySet = new Set();
mySet.add(1);
mySet.add(2);
mySet.add(3);

2. 删去元素:delete()

运用 delete() 办法从 Set 中删去指定的元素。

mySet.delete(2); // 从 Set 中删去元素 2

3. 查看元素是否存在:has()

运用 has() 办法查看指定元素是否存在于 Set 中。

mySet.has(1); // 查看 Set 中是否存在元素 1,返回成果为 true 或

4. 清空 Set:clear()

运用 clear() 办法清空 Set 中所有元素。

mySet.clear(); // 清空 Set

5. 获取 Set 的巨细:size 特点

运用 size 特点获取 Set 内元素数量。

let setSize = mySet.size; 获取 Set 的巨细

掌握以上的这些办法可以协助你在开发过程中,熟练的对 Set 进行元素的增查操作,以及 Set 的巨细信息。

五. 留意事项

经过上面的了解,咱们基本知道到了 Set 的特性以及最常用的运用办法,可是在运用 Set 时,有几个留意事项需求咱们提前了解一下,下面是我总结的运用 Set 时需求留意的几个事项:

1. 值的仅有性

Set 中的值有必要是仅有的,相同的值不会被重复存储。这意味着当你向一个 Set 中增加已存在的值时,不会有任何变化。因此,要保证你向 Set 增加的值是仅有的,不然可能会导致意外的成果。

2. 目标引证

Set 存储的是值的引证,而不是仿制。这意味着当你向 Set 增加一个目标时,实践存储的是目标的引证而不是目标自身。这可能会导致一些意想不到的成果,特别是在修正目标时。请留意在修正目标后查看 Set 中的值是否也会被修正。

3. NaN 的处理

在 Set 中,NaN 被视为是相同的值,即 NaN 只能存储一次。这可能与你的预期不同,由于在其他当地 NaN 通常被视为是不相同的值。所以,保证在运用 Set 存储 NaN 时,不会呈现重复的状况。

const set = [...new Set([Number("one"), Number("two"), "one", "two"])];
console.log(set);

JavaScript Set 必备攻略:深化了解 Set 的特性和办法

4. 不支持索引拜访

Set 不支持经过索引来拜访值,由于它的值是无序的。假如你需求经过索引拜访值,请考虑运用 Array。

5. 类型转化

当咱们向 Set 中增加值的时候,不会进行类型转化,即 ‘1’和 1 是不相同的

const set = [...new Set([1, "1"])];
console.log(set);

JavaScript Set 必备攻略:深化了解 Set 的特性和办法

在运用 Set 时需求针对详细场景进行合理的挑选和留意。尽管 Set 在去重和调集操作等方面十分有用,但也需求留意它的特性和限制,以便正确运用和处理数据。

六. 总结

经过对本文的学习,咱们都知道了 Set 是 JavaScript 中的一种数据结构,它供给了一种用于存储仅有值的机制,一起还具有高效的数据操作能力。

首先,咱们了解了 Set 的核心特性:仅有性无序性可迭代性以及长度特点等。这些特性使得 Set 成为一个强壮的去重东西,而且具有高效的调集操作能力。

紧接着,咱们逐一介绍了 Set 的各种办法的运用。咱们学习了如何向 Set 中增加和删去值,经过 adddeleteclear 办法完结这些操作。咱们还了解了如何判断某个值是否存在于 Set 中,经过 has 办法可以快速判断。

在实践开发中,Set 有着广泛的使用。无论是从一个数组中快速去重重复的值,还是使用调集操作来处理数据,Set 都能供给便当且高效的解决方案。

总而言之,Set 是 JavaScript 中的一个重要而强壮的数据结构。经过深化了解 Set 的特性和办法,咱们可以更好地使用它来解决实践问题。