TypeScript中Map對象使用及Map與字典的區(qū)別詳解
(1)Map的基礎操作
//初始化Map的鍵和值,它們可以是任何類型,注意Map中所有的鍵或所有的值必須是相同類型
let nameList = new Map([
["key1", 1],
["key2", 2]
])
//通過map.set設置鍵值對,返回該Map對象
nameList.set("key3", 3)
console.log(nameList)
//通過map.get獲取鍵對應的值,如果不存在,則返回undefined
var getmap = nameList.get("key2")
var getmap2 = nameList.get("key999")
console.log(getmap)
console.log(getmap2)
//通過map.delete()刪除鍵值對,刪除則返回true,未刪除則返回false
var deletemap = nameList.delete("key2")
console.log(deletemap)
console.log(nameList)
//通過has()判斷 Map中是否包含所查找的鍵值,返回布爾型
var hasmap = nameList.has("key1")
var hasmap2 = nameList.has("key999")
console.log(hasmap)
console.log(hasmap2)
//通過clear()移除所有鍵值對,清楚Map
var clearmap = nameList.clear()
console.log(nameList)
(2)Map的迭代
Map的迭代有多種方式
1.使用for...of進行迭代,返回一個包含鍵值對的數組
let myMap = new Map()
myMap.set(0, "zero")
myMap.set(1, "one")
for (let [key, value] of myMap) {
console.log(key, value)
}2.使用forEach進行迭代,它會接受一個回調函數作為參數
let myMap = new Map()
myMap.set(0, "zero")
myMap.set(1, "one")
myMap.forEach((value, key) => {
console.log(key, value)
})
3.使用 keys 方法迭代所有的鍵
let myMap = new Map()
myMap.set(0, "zero")
myMap.set(1, "one")
for (let key of myMap.keys()) {
console.log(key)
}
4.使用 values 方法迭代所有的值
let myMap = new Map()
myMap.set(0, "zero")
myMap.set(1, "one")
for (let value of myMap.values()) {
console.log(value)
}
需要注意的是,使用 for...of 或 forEach 迭代時,鍵值對的順序與添加順序一致;而使用 keys 或 values 迭代時,順序與添加順序無關。
(3)Map與字典的區(qū)別
在 TypeScript 中,Map 和字典(也叫關聯數組或哈希表)都可以用來存儲鍵值對。它們的主要區(qū)別在于內部實現方式和一些特性上。
Map 是 JavaScript 中的一個原生類,是一個可迭代的鍵值對的集合,其中每個鍵都是唯一的。它的鍵和值可以是任意類型的,可以通過 set 方法來添加新的鍵值對,通過 get 方法來獲取值。Map 還有一些特殊的方法和屬性,比如 size 屬性,clear() 方法和 forEach() 方法等。在 TypeScript 中,我們可以直接使用 Map 類型來定義一個 Map 對象,例如:
const map = new Map<string, number>();
map.set('apple', 1);
map.set('banana', 2);
map.set('orange', 3);
字典(或關聯數組或哈希表)則是一種常見的數據結構,也可以用來存儲鍵值對,其中每個鍵也是唯一的。字典的實現方式一般是通過散列表(hash table)來實現的。在 TypeScript 中,我們通常會使用對象來模擬字典,例如:
const dict = {
apple: 1,
banana: 2,
orange: 3,
};
字典雖然在實現上可能更高效,但是它不是一個原生的類,也缺乏 Map 的一些特殊方法和屬性。因此在 TypeScript 中,如果需要使用到這些特殊的方法和屬性,或者需要確保鍵的順序等問題,建議使用 Map。如果只是簡單的存儲鍵值對,可以使用對象或者字典。
總結
到此這篇關于TypeScript中Map對象使用及Map與字典的區(qū)別詳解的文章就介紹到這了,更多相關TS Map對象與字典區(qū)別內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

