首頁 >web前端 >js教程 >JS 中的集合是什麼?

JS 中的集合是什麼?

WBOY
WBOY原創
2024-07-19 12:03:18375瀏覽

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