TypeScript中Map與Set的區(qū)別小結(jié)
在TypeScript中,Map和Set都是ES6引入的集合類型,它們有各自不同的用途和特性:
Map(映射)
Map是鍵值對的集合,其中鍵可以是任意類型(對象、函數(shù)、基本類型等)。
主要特性:
// 創(chuàng)建Map
const map = new Map<string, number>();
// 添加鍵值對
map.set('name', 'Alice');
map.set('age', 25);
map.set(1, 'one'); // 鍵可以是數(shù)字
// 獲取值
console.log(map.get('name')); // 'Alice'
// 檢查鍵是否存在
console.log(map.has('age')); // true
// 刪除鍵值對
map.delete('age');
// 獲取大小
console.log(map.size); // 2Map的優(yōu)勢:
- 鍵可以是任意類型
- 保持插入順序
- 有size屬性
- 性能在頻繁增刪時更好
Set(集合)
Set是值的集合,每個值在Set中只能出現(xiàn)一次。
主要特性:
// 創(chuàng)建Set const set = new Set<number>(); // 添加值 set.add(1); set.add(2); set.add(2); // 重復(fù)值會被忽略 set.add(3); // 檢查值是否存在 console.log(set.has(2)); // true // 刪除值 set.delete(1); // 獲取大小 console.log(set.size); // 2 // 遍歷 set.forEach(value => console.log(value));
Set的優(yōu)勢:
- 自動去重
- 快速判斷值是否存在
- 保持插入順序
主要區(qū)別對比
| 特性 | Map | Set |
|---|---|---|
| 存儲內(nèi)容 | 鍵值對 | 唯一值 |
| 重復(fù)處理 | 鍵唯一,值可重復(fù) | 值唯一 |
| 主要用途 | 需要鍵值映射的場景 | 需要唯一值的集合 |
| 查找性能 | 通過鍵快速查找 | 通過值快速查找 |
| 典型方法 | set(), get(), has() | add(), has() |
使用場景示例
Map使用場景:
// 用戶信息映射
const userMap = new Map<number, {name: string, email: string}>();
userMap.set(1, {name: 'Alice', email: 'alice@example.com'});
userMap.set(2, {name: 'Bob', email: 'bob@example.com'});
// 緩存數(shù)據(jù)
const cache = new Map<string, any>();Set使用場景:
// 去重
const numbers = [1, 2, 2, 3, 3, 4];
const uniqueNumbers = new Set(numbers); // [1, 2, 3, 4]
// 標(biāo)簽集合
const tags = new Set<string>();
tags.add('javascript');
tags.add('typescript');
tags.add('javascript'); // 不會被重復(fù)添加兩者都是TypeScript中非常有用的數(shù)據(jù)結(jié)構(gòu),根據(jù)具體需求選擇使用。
到此這篇關(guān)于TypeScript中Map與Set的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)TypeScript Map Set內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Javascript 獲取鼠標(biāo)當(dāng)前的位置實現(xiàn)方法
這篇文章主要介紹了Javascript 獲取鼠標(biāo)當(dāng)前的位置實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2016-10-10
TypeError: Cannot set properties of 
這篇文章主要介紹了TypeError: Cannot set properties of undefined (setting ‘xx‘)的問題,本文給大家分享完美解決方案,需要的朋友可以參考下2023-09-09
JavaScript在Android的WebView中parseInt函數(shù)轉(zhuǎn)換不正確問題解決方法
這篇文章主要介紹了JavaScript在Android的WebView中parseInt函數(shù)轉(zhuǎn)換不正確問題解決方法,因轉(zhuǎn)換的字符串?dāng)?shù)字都以0開頭,導(dǎo)致parseInt函數(shù)在瀏覽器和Android WebView中轉(zhuǎn)換結(jié)果不一樣,本文給出了解決方法,需要的朋友可以參考下2015-04-04
JavaScript中Promise的then()方法用例詳解
在JavaScript中Promise是一種用于處理異步操作的編程模式,它代表了一個最終可能完成(解析)或失敗(拒絕)的操作及其結(jié)果值,這篇文章主要給大家介紹了關(guān)于JavaScript中Promise的then()方法用例的相關(guān)資料,需要的朋友可以參考下2025-07-07
前端傳遞參數(shù)時form-data和json的區(qū)別詳解
前端可以通FormData對象實現(xiàn)表單形式提交數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于前端傳遞參數(shù)時form-data和json區(qū)別的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-11-11

