欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

TypeScript中Map對(duì)象使用及Map與字典的區(qū)別詳解

 更新時(shí)間:2024年01月23日 16:10:52   作者:3wj  
Map對(duì)象主要的應(yīng)用場(chǎng)景在于數(shù)據(jù)重組和數(shù)據(jù)儲(chǔ)存,下面這篇文章主要給大家介紹了TypeScript中Map對(duì)象使用及Map與字典的區(qū)別的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

(1)Map的基礎(chǔ)操作

//初始化Map的鍵和值,它們可以是任何類(lèi)型,注意Map中所有的鍵或所有的值必須是相同類(lèi)型
let nameList = new Map([
    ["key1", 1],
    ["key2", 2]
])
 
 //通過(guò)map.set設(shè)置鍵值對(duì),返回該Map對(duì)象
nameList.set("key3", 3)
console.log(nameList)

//通過(guò)map.get獲取鍵對(duì)應(yīng)的值,如果不存在,則返回undefined
var getmap = nameList.get("key2")
var getmap2 = nameList.get("key999")
console.log(getmap)
console.log(getmap2)

//通過(guò)map.delete()刪除鍵值對(duì),刪除則返回true,未刪除則返回false
var deletemap = nameList.delete("key2")
console.log(deletemap)
console.log(nameList)

//通過(guò)has()判斷 Map中是否包含所查找的鍵值,返回布爾型
var hasmap = nameList.has("key1")
var hasmap2 = nameList.has("key999")
console.log(hasmap)
console.log(hasmap2)

//通過(guò)clear()移除所有鍵值對(duì),清楚Map
var clearmap = nameList.clear()
console.log(nameList)
 

(2)Map的迭代

Map的迭代有多種方式

1.使用for...of進(jìn)行迭代,返回一個(gè)包含鍵值對(duì)的數(shù)組

let myMap = new Map()
myMap.set(0, "zero")
myMap.set(1, "one")

for (let [key, value] of myMap) {
  console.log(key, value)
}

2.使用forEach進(jìn)行迭代,它會(huì)接受一個(gè)回調(diào)函數(shù)作為參數(shù)

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 迭代時(shí),鍵值對(duì)的順序與添加順序一致;而使用 keys 或 values 迭代時(shí),順序與添加順序無(wú)關(guān)。

(3)Map與字典的區(qū)別

在 TypeScript 中,Map 和字典(也叫關(guān)聯(lián)數(shù)組或哈希表)都可以用來(lái)存儲(chǔ)鍵值對(duì)。它們的主要區(qū)別在于內(nèi)部實(shí)現(xiàn)方式和一些特性上。

Map 是 JavaScript 中的一個(gè)原生類(lèi),是一個(gè)可迭代的鍵值對(duì)的集合,其中每個(gè)鍵都是唯一的。它的鍵和值可以是任意類(lèi)型的,可以通過(guò) set 方法來(lái)添加新的鍵值對(duì),通過(guò) get 方法來(lái)獲取值。Map 還有一些特殊的方法和屬性,比如 size 屬性,clear() 方法和 forEach() 方法等。在 TypeScript 中,我們可以直接使用 Map 類(lèi)型來(lái)定義一個(gè) Map 對(duì)象,例如:

const map = new Map<string, number>();
map.set('apple', 1);
map.set('banana', 2);
map.set('orange', 3);

字典(或關(guān)聯(lián)數(shù)組或哈希表)則是一種常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),也可以用來(lái)存儲(chǔ)鍵值對(duì),其中每個(gè)鍵也是唯一的。字典的實(shí)現(xiàn)方式一般是通過(guò)散列表(hash table)來(lái)實(shí)現(xiàn)的。在 TypeScript 中,我們通常會(huì)使用對(duì)象來(lái)模擬字典,例如:

const dict = { 
  apple: 1,
  banana: 2,
  orange: 3,
};

字典雖然在實(shí)現(xiàn)上可能更高效,但是它不是一個(gè)原生的類(lèi),也缺乏 Map 的一些特殊方法和屬性。因此在 TypeScript 中,如果需要使用到這些特殊的方法和屬性,或者需要確保鍵的順序等問(wèn)題,建議使用 Map。如果只是簡(jiǎn)單的存儲(chǔ)鍵值對(duì),可以使用對(duì)象或者字典。

總結(jié)

到此這篇關(guān)于TypeScript中Map對(duì)象使用及Map與字典的區(qū)別詳解的文章就介紹到這了,更多相關(guān)TS Map對(duì)象與字典區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Blazor實(shí)現(xiàn)微信的Tab切換功能

    Blazor實(shí)現(xiàn)微信的Tab切換功能

    這篇文章主要介紹了Blazor實(shí)現(xiàn)微信的Tab切換功能,本文中的UI組件使用的是MASA?Blazor,您也可以是其他的UI框架,這個(gè)并不影響實(shí)際的運(yùn)行效果,本文案例是兼容PC和Android的,演示效果是android中執(zhí)行的,在PC中執(zhí)行效果依然有效,需要的朋友可以參考下
    2023-01-01
  • ES7中利用Await減少回調(diào)嵌套的方法詳解

    ES7中利用Await減少回調(diào)嵌套的方法詳解

    大家都知道在ES7中有了標(biāo)準(zhǔn)的回調(diào)函數(shù)嵌套的解決方案,新增了 async/await兩個(gè)關(guān)鍵詞,所以這篇文章主要給大家介紹了關(guān)于Javascript中如何利用Await減少回調(diào)嵌套的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • js中數(shù)組常用方法總結(jié)(推薦)

    js中數(shù)組常用方法總結(jié)(推薦)

    這篇文章主要介紹了js中數(shù)組常用方法總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • JavaScript.Encode手動(dòng)解碼技巧

    JavaScript.Encode手動(dòng)解碼技巧

    往往在網(wǎng)頁(yè)上有JS加密代碼的解碼方法,但是由于代碼中存在轉(zhuǎn)義字符,無(wú)法正確的進(jìn)行解碼。
    2010-07-07
  • 微信小程序非跳轉(zhuǎn)式組件授權(quán)登錄的方法示例

    微信小程序非跳轉(zhuǎn)式組件授權(quán)登錄的方法示例

    這篇文章主要介紹了微信小程序非跳轉(zhuǎn)式組件授權(quán)登錄的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • js兩行代碼按指定格式輸出日期時(shí)間

    js兩行代碼按指定格式輸出日期時(shí)間

    javascript兩行代碼即可實(shí)現(xiàn)按指定格式輸出日期時(shí)間,非常不錯(cuò),需要的朋友可以參考下
    2011-10-10
  • js仿3366小游戲選字游戲

    js仿3366小游戲選字游戲

    這篇文章主要為大家詳細(xì)介紹了js仿3366小游戲選字游戲
    2016-04-04
  • JavaScript通過(guò)代碼調(diào)用Flash顯示的方法

    JavaScript通過(guò)代碼調(diào)用Flash顯示的方法

    這篇文章主要介紹了JavaScript通過(guò)代碼調(diào)用Flash顯示的方法,實(shí)例分析了JavaScript通過(guò)flash插件swfobject.js調(diào)用flash顯示的具體操作技巧,需要的朋友可以參考下
    2016-02-02
  • 詳解TypeScript如何正確使用Declare關(guān)鍵字

    詳解TypeScript如何正確使用Declare關(guān)鍵字

    如果您編寫(xiě) TypeScript 代碼的時(shí)間足夠長(zhǎng),您就已經(jīng)看到過(guò)declare關(guān)鍵字,但它有什么作用,為什么要使用它呢,下面小編就來(lái)和大家簡(jiǎn)單講講
    2023-08-08
  • 基于JavaScript獲取url參數(shù)2種方法

    基于JavaScript獲取url參數(shù)2種方法

    這篇文章主要介紹了基于JavaScript獲取url參數(shù)2種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論