JavaScript 集合:組織數據的友好指南
你好,未來的 JavaScript 巫師們!今天,我們將踏上一段令人興奮的旅程,進入 JavaScript 集合的世界。別擔心如果你是編程新手——我將成為你可靠的導師,我們將一步一步地探索這個主題。在這個教程結束時,你將能夠像專業人士一樣操作集合!
什麼是集合?
在我們深入研究代碼之前,讓我們先來討論一下集合到底是什麼。想像你有一袋彈珠,但這袋彈珠很特別——它只允許每種顏色有一顆彈珠。這基本上就是 JavaScript 中的集合:一個只能包含唯一值的集合。不允許重複!
語法:創建集合
讓我們從基礎開始。以下是如何創建一個新的集合:
let mySet = new Set();
就這樣!你剛剛創建了一個空的集合。但如果你想要創建一個帶有一些初始值的集合怎麼辦?沒問題:
let fruitSet = new Set(['apple', 'banana', 'orange']);
現在你在集合中有三種水果。記住,即使你試圖再次添加 'apple',它也不會被包括,因為集合只保留唯一值。
參數:你能在集合中放入什麼?
JavaScript 中的集合非常灵活。你可以添加各種類型的值:
- 數字
- 字符串
- 對象
- 数组
- 甚至其他集合!
讓我們看一個例子:
let mixedSet = new Set([1, 'two', {three: 3}, [4, 5]]);
console.log(mixedSet);
如果你運行這段代碼,你會看到我們的集合包含了所有這些不同類型的值。
示例:玩轉集合
現在我們已經了解了基礎知識,讓我們來一些有樂趣的集合操作!
添加和刪除元素
let colorSet = new Set();
// 添加元素
colorSet.add('red');
colorSet.add('blue');
colorSet.add('green');
console.log(colorSet); // 輸出: Set(3) { 'red', 'blue', 'green' }
//嘗試添加重複元素
colorSet.add('red');
console.log(colorSet); // 輸出: Set(3) { 'red', 'blue', 'green' }
// 刪除元素
colorSet.delete('blue');
console.log(colorSet); // 輸出: Set(2) { 'red', 'green' }
正如你所看到的,當我們再次嘗試添加 'red' 時,集合沒有變化。這就是集合的美妙之處——它們自動為我們處理重複!
檢查元素
想知道集合是否包含特定值?使用 has()
方法:
let animalSet = new Set(['dog', 'cat', 'bird']);
console.log(animalSet.has('dog')); // 輸出: true
console.log(animalSet.has('fish')); // 輸出: false
集合的大小
要找出你的集合中有多少個唯一元素,使用 size
屬性:
let numberSet = new Set([1, 2, 3, 4, 5, 5, 5]);
console.log(numberSet.size); // 輸出: 5
即使我們添加了三次 5,集合也只計算一次!
數學集合操作
現在,讓我們戴上數學帽子,看看我們可以對集合進行哪些操作。
合並
合並將兩個集合合在一起,保留兩個集合中的所有唯一元素:
let set1 = new Set([1, 2, 3]);
let set2 = new Set([3, 4, 5]);
let unionSet = new Set([...set1, ...set2]);
console.log(unionSet); // 輸出: Set(5) { 1, 2, 3, 4, 5 }
交集
交集只保留兩個集合中都存在的元素:
let set1 = new Set([1, 2, 3, 4]);
let set2 = new Set([3, 4, 5, 6]);
let intersectionSet = new Set([...set1].filter(x => set2.has(x)));
console.log(intersectionSet); // 輸出: Set(2) { 3, 4 }
差集
差集保留第一個集合中的元素,但不包括第二個集合中的元素:
let set1 = new Set([1, 2, 3, 4]);
let set2 = new Set([3, 4, 5, 6]);
let differenceSet = new Set([...set1].filter(x => !set2.has(x)));
console.log(differenceSet); // 輸出: Set(2) { 1, 2 }
JavaScript 集合參考
這裡是我們討論過的所有方法和屬性,還有一些額外的:
方法/屬性 | 描述 |
---|---|
new Set() |
創建一個新的集合 |
add(value) |
向集合中添加一個新元素 |
delete(value) |
從集合中刪除一個元素 |
has(value) |
如果值存在於集合中,則返回 true |
clear() |
從集合中刪除所有元素 |
size |
返回集合中的元素數量 |
forEach(callback) |
對集合中的每個元素調用一個函數 |
values() |
返回一個包含集合中所有值的迭代器 |
keys() |
與 values() 相同 |
entries() |
返回一個包含集合中 [值, 值] 對的迭代器 |
好了,各位!你剛剛完成了對 JavaScript 集合的快速入門。記住,集合就像那些總是保持獨特和有組織的朋友一樣——當你處理不應該有重複的數據時,他們是非常有用的。
練習創建和操作集合,不久你會發現自己自然地在編程冒險中使用它們。誰知道呢?也許你甚至會開始到處看到集合——就像那個每雙襪子都不一樣的襪子抽屜一樣!
繼續編程,保持好奇心,並記住:在集合的世界裡,獨一無二就是遊戲的名字!
Credits: Image by storyset