ES6中的Map與Set數據結構的簡單應用

一、Map定義和基本用法

Map是一種鍵值對集合,其中鍵和值都可以是任何類型(對象、原始值等)。與普通對象不同,Map保持鍵值對的插入順序,并且允許使用任何類型的鍵。

1、創建Map

const map = new Map()

2、添加鍵值對。語法:map.set(鍵名, 值)

map.set('name', 'John')
map.set(1, 'one')
map.set(true, ['boolean'])

3、獲取值。語法:map.get(鍵名)

console.log(map.get('name')); // 輸出: John
console.log(map.get(1));      // 輸出: one
console.log(map.get(true));   // 輸出: ['boolean']

4、檢查鍵。

console.log(map.has('name')); // 輸出: true

5、刪除鍵值對

map.delete('name');
console.log(map.has('name')); // 輸出: false

6、獲取Map的大小

console.log(map.size); // 輸出: 2

7、簡單示例

const map = new Map()
data.failedList.forEach((item) => {if (map.has(item.failedReason)) {// 如果已存在該失敗原因,取出數組并 push 當前 vinconst vinList = map.get(item.failedReason)vinList.push(item.vin)} else {// 如果不存在,初始化一個數組存儲當前 vinmap.set(item.failedReason, [item.vin])}})
console.log('最終結果:', map)
//map.forEach((值, 鍵名) => {? 
//})
map.forEach((vinLists, failedReasons) => {useMessage().error(`VIN碼${vinLists.join(',')}:${failedReasons}`)
})

二、Set定義和基本用法

Set是一種值的集合,其中每個值都是唯一的,且值可以是任何類型。Set不允許重復的值。

1、創建Set

const set = new Set();

2、添加值

set.add(1);
set.add(5);
set.add(1); // 重復值不會被添加
console.log(set.size); // 輸出: 2

3、檢查值

console.log(set.has(1)); // 輸出: true
console.log(set.has(2)); // 輸出: false

4、刪除值

set.delete(5);
console.log(set.has(5)); // 輸出: false

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84155.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84155.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84155.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

25.【.NET8 實戰--孢子記賬--從單體到微服務--轉向微服務】--單體轉微服務--用戶服務接口

用戶管理是任何系統的基礎功能之一,本篇介紹了如何實現一個完整的用戶管理模塊,包括用戶信息的增刪改查、用戶狀態管理、分頁查詢、數據驗證和權限控制。核心代碼實現部分涵蓋了控制器(UserController)、服務接口(IUse…

基于深度學習的無人機軌跡預測

完整代碼見文末 隨著無人機技術的不斷發展,無人機在農業、物流、監控等領域的應用日益廣泛。精準的軌跡預測不僅能夠提高無人機飛行的效率和安全性,還能在應對復雜環境下的突發狀況時做出迅速反應。因此,基于深度學習的無人機軌跡預測已成為當前研究和應用的熱門方向。 無…

AUTOSAR實戰教程--DoIP_02_診斷鏈路建立流程

第一步:DoIP實體車輛聲明/診斷儀車輛識別請求 打開激活線以后,DoIP實體發的三幀車輛聲明報文。其中包含了DoIP實體的診斷邏輯地址(可以類比DoCAN的物理請求/響應地址),對應車輛的VIN碼(若已配置&#xff0…

跟我學c++中級篇——多線程中的文件處理

一、文件處理 作為IO處理的一種重要場景,文件處理是幾乎所有編程都無法繞過的一個情況。稍微復雜的一些的程序都可能需要文件處理,不管這種文件處理對開發者來說是顯式的還是隱式的。相對于其它語言,C并未提供多么好的文件處理API接口&#…

Flutter知識點匯總

Flutter架構解析 1. Flutter 是什么?它與其他移動開發框架有什么不同? Flutter 是 Google 開發的開源移動應用開發框架,可用于快速構建高性能、高保真的移動應用(iOS 和 Android),也支持 Web、桌面和嵌入式設備。。它與其他移動開發框架(如 React Native、Xamarin、原…

【會員專享數據】1980—2022年中國逐日月年潛在蒸散發柵格數據

氣象數據是我們在各項研究中都經常使用的數據,尤其是高精度的氣象數據應用價值非常高。 之前我們分享過研究者張凌, 胡英屹等發布在國家冰川凍土沙漠科學數據中心平臺上的nc格式的1980—2022年中國高分辨率逐日、逐月、逐年氣象數據!很多小伙伴拿到數據…

前端打包工具簡單介紹

前端打包工具簡單介紹 一、Webpack 架構與插件機制 1. Webpack 架構核心組成 Entry(入口) 指定應用的起點文件,比如 src/index.js。 Module(模塊) Webpack 把項目當作模塊圖,模塊可以是 JS、CSS、圖片等…

工業控制核心引擎高性能MCU——MM32F5370

RAMSUN提供的MM32F5370搭載180MHz Arm China Star-MC1處理器,集成DSP、FPU與三角函數加速單元(CORDIC),輕松應對復雜算法需求。其技術亮點包括: 超高精度PWM:8通道208ps級高精度PWM輸出,滿足儲能…

AI架構師修煉之道

1 AI時代的架構革命 與傳統軟件開發和軟件架構師相比,AI架構師面臨著三重范式轉換: 1.1 技術維度,需處理異構算力調度與模型生命周期管理的復雜性; 1.2 系統維度,需平衡實時性與資源約束的矛盾; 1.3 價…

數學建模期末速成 主成分分析的基本步驟

設有 n n n個研究對象, m m m個指標變量 x 1 , x 2 , ? , x m x_1,x_2,\cdots,x_m x1?,x2?,?,xm?,第 i i i個對象關于第 j j j個指標取值為 a i j a_{ij} aij?,構造數據矩陣 A ( a i j ) n m A\left(\begin{array}{c}a_{ij}\end{array}\right)_{…

博圖 SCL 編程技巧:靈活實現上升沿與下降沿檢測案例分享(上)

博圖 SCL 編程技巧:靈活實現上升沿與下降沿檢測案例分享 在 PLC 編程中,檢測信號從 0 變為 1 (上升沿) 或從 1 變為 0 (下降沿) 是最基礎也是最關鍵的操作之一。它常用于啟動單次動作、計數、狀態切換等場景。在西門子 TIA Portal 環境中,雖…

深度學習入門Day3--魚書學習(2)

這倆天剛忙完答辯的事情,終于有時間學習了 一、3層神經網絡實現 1.本節中的符號使用說明。 w 12 ( 1 ) w_{12}^{(1)} w12(1)?表示前一層的第2個神經元 x 2 x_{2} x2?到后一層的第一個神經元 a 1 a_{1} a1?的權重。權重右下角按照“后一層的索引號、前一層的索引…

服務器 | Centos 9 系統中,如何部署SpringBoot后端項目?

系列文章目錄 虛擬機 | Ubuntu 安裝流程以及界面太小問題解決 虛擬機 | Ubuntu圖形化系統: open-vm-tools安裝失敗以及實現文件拖放 虛擬機 | Ubuntu操作系統:su和sudo理解及如何處理忘記root密碼 文章目錄 系列文章目錄前言一、環境介紹二、 使用syst…

CNN核心機制深度解析:卷積池化原理 PyTorch實現經典網絡

本文較長,建議點贊收藏,以免遺失。更多AI大模型應用開發學習視頻及資料,盡在聚客AI學院。 本文系統講解CNN核心原理、經典網絡架構和圖像分類實戰,涵蓋卷積層、池化層、LeNet/AlexNet/VGG/ResNet設計思想,并提供CIFAR-…

6個月Python學習計劃 Day 17 - 繼承、多態與魔術方法

第三周 Day 4 🎯 今日目標 理解類的繼承和方法重寫掌握多態思想及其實際應用了解并使用常見的魔術方法(如 str、len 等) 🧬 類的繼承(Inheritance) Python 支持單繼承與多繼承,常用語法如下&…

抖音怎么下載視頻

抖音作為一款短視頻社交平臺,憑借其獨特的短視頻形式和豐富的內容,吸引了大量用戶。有些用戶在欣賞完抖音視頻后,想要將其保存下來,以便日后觀看。如何在抖音下載視頻呢?本文將為您詳細介紹抖音視頻下載的技巧和方法。…

使用MinIO搭建自己的分布式文件存儲

目錄 引言: 一.什么是 MinIO ? 二.MinIO 的安裝與部署: 三.Spring Cloud 集成 MinIO: 1.前提準備: (1)安裝依賴: (2)配置MinIO連接: &…

uni-app 如何實現選擇和上傳非圖像、視頻文件?

在 uni-app 中實現選擇和上傳非圖像、視頻文件,可根據不同端(App、H5、小程序)的特點,采用以下方法: 一、通用思路(多端適配優先推薦) 借助 uni.chooseFile 選擇文件,再用 uni.upl…

正點原子[第三期]Arm(iMX6U)Linux移植學習筆記-12.1 Linux內核啟動流程簡介

前言: 本文是根據嗶哩嗶哩網站上“Arm(iMX6U)Linux系統移植和根文件系統構鍵篇”視頻的學習筆記,在這里會記錄下正點原子 I.MX6ULL 開發板的配套視頻教程所作的實驗和學習筆記內容。本文大量引用了正點原子教學視頻和鏈接中的內容。 引用: …

UDP與TCP通信協議技術解析

文章目錄 協議基礎原理TCP:可靠的面向連接通信UDP:高效的無連接通信 性能特征分析TCP性能表現UDP性能表現 應用場景分析TCP適用場景UDP適用場景 技術實現考量錯誤處理策略網絡資源利用 選擇決策框架可靠性需求評估性能要求分析 混合方案設計協議組合策略…