<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙TypeScript學習第12天【Map對象】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-10 15:47 ? 次閱讀

1、TypeScript Map 對象

Map 對象保存鍵值對,并且能夠記住鍵的原始插入順序。

任何值(對象或者原始值) 都可以作為一個鍵或一個值。

Map 是 ES6 中引入的一種新的數據結構,可以參考gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md

2、創建 Map

TypeScript 使用 Map 類型和 new 關鍵字來創建 Map:

let myMap = new Map();

初始化 Map,可以以數組的格式來傳入鍵值對:

let myMap = new Map([
        ["key1", "value1"],
        ["key2", "value2"]
    ]);

Map 相關的函數與屬性:

  • map.clear() – 移除 Map 對象的所有鍵/值對 。
  • map.set() – 設置鍵值對,返回該 Map 對象。
  • map.get() – 返回鍵對應的值,如果不存在,則返回 undefined。
  • map.has() – 返回一個布爾值,用于判斷 Map 中是否包含鍵對應的值。
  • map.delete() – 刪除 Map 中的元素,刪除成功返回 true,失敗返回 false。
  • map.size – 返回 Map 對象鍵/值對的數量。
  • map.keys() - 返回一個 Iterator 對象, 包含了 Map 對象中每個元素的鍵 。
  • map.values() – 返回一個新的Iterator對象,包含了Map對象中每個元素的值 。

實例 - test.ts 文件

搜狗高速瀏覽器截圖20240326151547.png

或者添加mau123789是v直接拿鴻蒙文檔
let nameSiteMapping = new Map();
 
// 設置 Map 對象
nameSiteMapping.set("Google", 1);
nameSiteMapping.set("Runoob", 2);
nameSiteMapping.set("Taobao", 3);
 
// 獲取鍵對應的值
console.log(nameSiteMapping.get("Runoob"));     // 2
 
// 判斷 Map 中是否包含鍵對應的值
console.log(nameSiteMapping.has("Taobao"));       // true
console.log(nameSiteMapping.has("Zhihu"));        // false
 
// 返回 Map 對象鍵/值對的數量
console.log(nameSiteMapping.size);                // 3
 
// 刪除 Runoob
console.log(nameSiteMapping.delete("Runoob"));    // true
console.log(nameSiteMapping);
// 移除 Map 對象的所有鍵/值對
nameSiteMapping.clear();             // 清除 Map
console.log(nameSiteMapping);

使用 es6 編譯:

tsc --target es6 test.ts復制

編譯以上代碼得到如下 JavaScript 代碼:

實例 - test.js 文件

let nameSiteMapping = new Map();
// 設置 Map 對象
nameSiteMapping.set("Google", 1);
nameSiteMapping.set("Runoob", 2);
nameSiteMapping.set("Taobao", 3);
// 獲取鍵對應的值
console.log(nameSiteMapping.get("Runoob")); //40
// 判斷 Map 中是否包含鍵對應的值
console.log(nameSiteMapping.has("Taobao")); //true
console.log(nameSiteMapping.has("Zhihu")); //false
// 返回 Map 對象鍵/值對的數量
console.log(nameSiteMapping.size); //3
// 刪除 Runoob
console.log(nameSiteMapping.delete("Runoob")); // true
console.log(nameSiteMapping);
// 移除 Map 對象的所有鍵/值對
nameSiteMapping.clear(); //清除 Map
console.log(nameSiteMapping);

執行以上 JavaScript 代碼,輸出結果為:

2
true
false
3
true
Map { 'Google' = > 1, 'Taobao' = > 3 }
Map {}

3、迭代 Map

Map 對象中的元素是按順序插入的,我們可以迭代 Map 對象,每一次迭代返回 [key, value] 數組。

TypeScript使用 for...of 來實現迭代:

實例 -test.ts 文件

let nameSiteMapping = new Map();
 
nameSiteMapping.set("Google", 1);
nameSiteMapping.set("Runoob", 2);
nameSiteMapping.set("Taobao", 3);
 
// 迭代 Map 中的 key
for (let key of nameSiteMapping.keys()) {
    console.log(key);                  
}
 
// 迭代 Map 中的 value
for (let value of nameSiteMapping.values()) {
    console.log(value);                 
}
 
// 迭代 Map 中的 key = > value
for (let entry of nameSiteMapping.entries()) {
    console.log(entry[0], entry[1]);   
}
 
// 使用對象解析
for (let [key, value] of nameSiteMapping) {
    console.log(key, value);            
}

使用 es6 編譯:

tsc --target es6 test.ts復制

編譯以上代碼得到如下 JavaScript 代碼:

實例

let nameSiteMapping = new Map();
nameSiteMapping.set("Google", 1);
nameSiteMapping.set("Runoob", 2);
nameSiteMapping.set("Taobao", 3);
// 迭代 Map 中的 key
for (let key of nameSiteMapping.keys()) {
    console.log(key);
}
// 迭代 Map 中的 value
for (let value of nameSiteMapping.values()) {
    console.log(value);
}
// 迭代 Map 中的 key = > value
for (let entry of nameSiteMapping.entries()) {
    console.log(entry[0], entry[1]);
}
// 使用對象解析
for (let [key, value] of nameSiteMapping) {
    console.log(key, value);
}

執行以上 JavaScript 代碼,輸出結果為:

Google
Runoob
Taobao
1
2
3
Google 1
Runoob 2
Taobao 3
Google 1
Runoob 2
Taobao 3

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • javascript
    +關注

    關注

    0

    文章

    511

    瀏覽量

    53439
  • 鴻蒙
    +關注

    關注

    55

    文章

    1760

    瀏覽量

    42153
收藏 人收藏

    評論

    相關推薦

    鴻蒙TypeScript學習第20天:【模塊】

    TypeScript 模塊的設計理念是可以更換的組織代碼。 模塊是在其自身的作用域里執行,并不是在全局作用域,這意味著定義在模塊里面的變量、函數和類等在模塊外部是不可見的,除非明確地使用 export 導出它們。類似地,我們必須通過 import 導入其他模塊導出的變量、函數、類等。
    的頭像 發表于 04-18 15:19 ?474次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第20天:【模塊】

    鴻蒙TypeScript學習第17天:【對象

    對象是包含一組鍵值對的實例。 值可以是標量、函數、數組、對象
    的頭像 發表于 04-15 15:33 ?391次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第17天:【<b class='flag-5'>對象</b>】

    鴻蒙語言TypeScript學習第16天:【類】

    TypeScript 支持面向對象的所有特性,比如 類、接口等。
    的頭像 發表于 04-15 09:29 ?520次閱讀
    <b class='flag-5'>鴻蒙</b>語言<b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第16天:【類】

    鴻蒙TypeScript學習第10天:【String(字符串)】

    String 對象用于處理文本(字符串)。
    的頭像 發表于 04-08 14:32 ?257次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第10天:【String(字符串)】

    鴻蒙TypeScript 開發學習第9天:【TypeScript Number】

    TypeScript 與 JavaScript 類似,支持 Number 對象。 Number 對象是原始數值的包裝對象。
    的頭像 發表于 04-07 18:02 ?480次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b> 開發<b class='flag-5'>學習</b>第9天:【<b class='flag-5'>TypeScript</b> Number】

    鴻蒙TypeScript入門學習第8天:【TypeScript 函數】

    函數是一組一起執行一個任務的語句。 您可以把代碼劃分到不同的函數中。如何劃分代碼到不同的函數中是由您來決定的,但在邏輯上,劃分通常是根據每個函數執行一個特定的任務來進行的。
    的頭像 發表于 04-03 14:54 ?199次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>入門<b class='flag-5'>學習</b>第8天:【<b class='flag-5'>TypeScript</b> 函數】

    鴻蒙TypeScript學習第7天:【TypeScript 循環】

    有的時候,我們可能需要多次執行同一塊代碼。一般情況下,語句是按順序執行的:函數中的第一個語句先執行,接著是第二個語句,依此類推。 編程語言提供了更為復雜執行路徑的多種控制結構。
    的頭像 發表于 04-02 14:28 ?464次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第7天:【<b class='flag-5'>TypeScript</b> 循環】

    鴻蒙TypeScript入門學習第5天:【TypeScript 運算符】

    運算符用于執行程序代碼運算,會針對一個以上操作數項目來進行運算。
    的頭像 發表于 04-01 16:18 ?124次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>入門<b class='flag-5'>學習</b>第5天:【<b class='flag-5'>TypeScript</b> 運算符】

    鴻蒙TypeScript入門學習第6天:【條件語句】

    條件語句用于基于不同的條件來執行不同的動作。 TypeScript 條件語句是通過一條或多條語句的執行結果(True 或 False)來決定執行的代碼塊。
    的頭像 發表于 04-01 13:51 ?455次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>入門<b class='flag-5'>學習</b>第6天:【條件語句】

    鴻蒙TypeScript入門學習第2天【TypeScript安裝】

    本文介紹 TypeScript 環境的安裝。 我們需要使用到 npm 工具安裝,如果你還不了解 npm,可以參考我之前文檔。
    的頭像 發表于 03-27 15:22 ?218次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>入門<b class='flag-5'>學習</b>第2天【<b class='flag-5'>TypeScript</b>安裝】

    學習鴻蒙背后的價值?星河版開放如何學習?

    需要有更多的鴻蒙人才;鴻蒙開發工程師也將會迎來爆發式的增長! 所以學習鴻蒙勢在必行,而大部分人都能適合學鴻蒙。人群可以包括: 那
    發表于 02-22 20:55

    免費學習鴻蒙(HarmonyOS)開發,一些地址分享

    國內一流高校。通過鴻蒙班的設立,高??梢詾閷W生提供專業的鴻蒙OS學習環境和豐富的實踐機會,培養出更多的鴻蒙開發人才,為鴻蒙OS系統的生態建設
    發表于 01-12 20:48

    Java8的Stream流 map() 方法

    前言 在日常的開發工作中經常碰到要處理 List 中數據的問題,比如從一個對象集合中獲得對象中的一個屬性的集合。之前我們想到的是遍歷每個元素,然后取出來放到另外一個集合中,比較繁瑣;在 Java8
    的頭像 發表于 09-25 11:06 ?733次閱讀
    Java8的Stream流 <b class='flag-5'>map</b>() 方法

    【觸覺智能 Purple Pi OH 開發板體驗】二、鴻蒙系統APP應用例程學習HDC使用學習

    兩年開發鴻蒙APP也是使用的這兩種語言進行開發。當下看TypeScript程序還能說勉強看懂,但是當下開發程序就沒那個實力了,需要之后在抽時間學習。技術更新的也確實是快?。。?! 二、天氣預報程序開發
    發表于 08-31 11:13

    TypeScript之父也搞大模型:推出TypeChat

    C# 和 TypeScript 之父 Anders Hejlsberg 今天宣布了全新的開源項目 ——TypeChat,它通過 AI 在自然語言和應用程序模式 (application schema),以及 API 之間構建了一座 “橋梁”,能用新穎有趣的方式使用 TypeScr
    的頭像 發表于 07-24 09:27 ?593次閱讀
    <b class='flag-5'>TypeScript</b>之父也搞大模型:推出TypeChat
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>