首页  >  文章  >  web前端  >  JS 中的集合是什么?

JS 中的集合是什么?

WBOY
WBOY原创
2024-07-19 12:03:18324浏览

What is a Set in JS?

集合是唯一值的集合。与数组不同,集合不能有重复的元素。

集合的基本操作

创建一个集合

您可以使用 new Set() 构造函数创建一个新 Set。例如:

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

有趣严肃的例子

示例 1: 重复的派对破坏者
想象一下您正在举办一个聚会,并且您只想要独特的客人。但有些客人却两次尝试溜进去!

const partyGuests = new Set();

partyGuests.add('Alice');
partyGuests.add('Bob');
partyGuests.add('Alice'); // Alice tries to sneak in again!

console.log(partyGuests); // Output: Set(2) {"Alice", "Bob"}

在这里,爱丽丝两次试图潜入,但套装只让她进去一次。

示例 2: 魔术帽子戏法
你有一顶魔法帽,只允许存储独特的物品。如果你尝试将同一个物品放入两次,它就不会拥有它!

const magicHat = new Set();

magicHat.add('Rabbit');
magicHat.add('Dove');
magicHat.add('Rabbit'); // Another Rabbit tries to jump in!

console.log(magicHat); // Output: Set(2) {"Rabbit", "Dove"}

魔法帽里只有一只兔子和一只鸽子,尽管第二只兔子试图跳进去。

示例3:独特书籍图书馆
您经营着一家图书馆,每本书都必须是独一无二的。如果有人试图捐赠您已有的书,您可以礼貌地拒绝。

const library = new Set(['1984', 'Brave New World', '1984']); // 1984 is already in the library!

console.log(library); // Output: Set(2) {"1984", "Brave New World"}

您的图书馆通过仅保留每本书一本来保持其独特性。

有用的方法

检查会员

想知道某个特定客人是否已经参加聚会吗?

console.log(partyGuests.has('Alice')); // true
console.log(partyGuests.has('Charlie')); // false

删除会员

有人决定提前离开聚会?没问题!

partyGuests.delete('Bob');
console.log(partyGuests); // Output: Set(1) {"Alice"}

清除集合

聚会结束了!是时候清理所有人了。

partyGuests.clear();
console.log(partyGuests); // Output: Set(0) {}

迭代集合

就像数组一样,您可以迭代集合。

const animals = new Set(['Cat', 'Dog', 'Bird']);

for (const animal of animals) {
  console.log(animal); 
  // Output:
  // Cat
  // Dog
  // Bird
}

集合和数组之间的转换

您可以将集合转换为数组,反之亦然。

const numberSet = new Set([1, 2, 3]);
const numberArray = [...numberSet]; // [1, 2, 3]

const arrayToSet = new Set(numberArray); // Set(3) {1, 2, 3}

为什么要使用一套?

当您需要存储唯一项目的集合,并且希望避免重复项而无需手动检查它们时,集合特别有用。

概括

  • 唯一值: 集合仅存储唯一值。
  • 基本操作:您可以添加、删除和检查集合中的值。
  • 迭代:您可以迭代集合中的值。
  • 转换:在集合和数组之间轻松转换。

通过使用集合,您可以确保您的收藏保持独特且高效,无论是聚会的宾客名单、魔术帽中的物品还是图书馆中的书籍!

以上是JS 中的集合是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn