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

JavaScript中Set和Map數(shù)據(jù)結(jié)構(gòu)使用場景詳解

 更新時(shí)間:2023年06月01日 08:59:29   作者:Tom_Li  
這篇文章主要為大家介紹了JavaScript中Set和Map數(shù)據(jù)結(jié)構(gòu)使用場景詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Set數(shù)據(jù)結(jié)構(gòu)

Set 是 ES6 中引入的一種新的數(shù)據(jù)結(jié)構(gòu),它是一種集合,可以存儲(chǔ)任意類型的數(shù)據(jù)

Set 每個(gè)元素的值在集合中是唯一的。

使用 Set 數(shù)據(jù)結(jié)構(gòu)可以方便地去除數(shù)組或?qū)ο笾械闹貜?fù)元素。

應(yīng)用場景

// 1  數(shù)組去重
const arr = [1, 2, 3, 2, 1];
const set = new Set(arr);
const newArr = Array.from(set); // newArr = [1, 2, 3]
// 2 對象去重
const arr = [{ id: 1 }, { id: 2 }, { id: 1 }, { id: 3 }];
const set = new Set(arr.map(item => item.id));
const newArr = Array.from(set, id => ({ id })); 
// newArr = [{ id: 1 }, { id: 2 }, { id: 3 }]

 在上面的代碼中,我們首先使用 Array.map 將數(shù)組中的對象映射為它們的 id 值,

然后使用 new Set 去除重復(fù)的 id 值。

最后,我們使用 Array.from 將集合轉(zhuǎn)換為對象數(shù)組,

并根據(jù)每個(gè) id 值創(chuàng)建一個(gè)新的對象,得到不重復(fù)對象的數(shù)組。

Map 數(shù)據(jù)結(jié)構(gòu)

解釋

Map是一種 js 數(shù)據(jù)結(jié)構(gòu),與數(shù)組的 map 方法并非一種,要區(qū)分開來

Map數(shù)據(jù)結(jié)構(gòu)來管理數(shù)據(jù),能提高代碼的可讀性

Map 相比較 對象格式 存儲(chǔ)速度要更快

// 創(chuàng)建一個(gè)Map對象
const formData = new Map();
// 添加表單元素的值到Map中
formData.set('username', 'Tom');
formData.set('password', '123456');
// 獲取表單元素的值
const username = formData.get('username');// username = Tom
const password = formData.get('password');// password = 123456

通過使用Map來管理數(shù)據(jù),可以使代碼更加簡潔和易于維護(hù)。

同時(shí),Map也提供了一些方便的方法,如set()、get()、has()、delete()等,可以方便地對數(shù)據(jù)進(jìn)行操作。

使用場景

1. 管理表單數(shù)據(jù)

當(dāng)頁面中有多個(gè)表單元素需要進(jìn)行數(shù)據(jù)交互時(shí),可以使用Map來存儲(chǔ)表單數(shù)據(jù)。例如:

const formData = new Map();
formData.set('username', 'Tom');
formData.set('password', '123456');
// 通過get()方法來獲取已存儲(chǔ)的數(shù)據(jù)
const username = formData.get('username');// username = Tom
const password = formData.get('password');// password = 123456

2. 管理頁面狀態(tài)

當(dāng)頁面中存在一些狀態(tài)需要管理時(shí),可以使用Map來存儲(chǔ)狀態(tài)。例如:

const state = new Map();
state.set('loading', false);
state.set('error', null);
// 通過set()方法來更新已存儲(chǔ)的數(shù)據(jù)
state.set('loading', true);
state.set('error', '請求失敗');

3. 管理列表數(shù)據(jù)

當(dāng)頁面中存在一個(gè)列表需要管理時(shí),可以使用Map來存儲(chǔ)列表數(shù)據(jù)。例如:

const list = new Map();
list.set(1, { id: 1, name: 'Tom' });
list.set(2, { id: 2, name: 'Join' });
// 通過get()方法來獲取已存儲(chǔ)的數(shù)據(jù)
const item = list.get(1); // item = { id: 1, name: 'Tom' }
const item = list.get(2); // item = { id: 2, name: 'Join' }

4. 管理緩存數(shù)據(jù)

當(dāng)我們需要緩存一些數(shù)據(jù)時(shí),可以使用Map來存儲(chǔ)緩存數(shù)據(jù)。例如:

const cache = new Map();
cache.set('key1', 'value1');
cache.set('key2', 'value2');
// 通過get()方法來獲取已存儲(chǔ)的數(shù)據(jù)
const value = cache.get('key1');// value = value1
const value = cache.get('key2');// value = value2

以上就是JavaScript中Set和Map數(shù)據(jù)結(jié)構(gòu)使用場景詳解的詳細(xì)內(nèi)容,更多關(guān)于JavaScript Set Map數(shù)據(jù)結(jié)構(gòu)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)菜單左右聯(lián)動(dòng)

    微信小程序?qū)崿F(xiàn)菜單左右聯(lián)動(dòng)

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)菜單左右聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • javascript cookies操作集合

    javascript cookies操作集合

    因?yàn)樽罱刂茝V告,所以從綠盟與腳本之家頁面上,整理了一些cookies的操作控制代碼,喜歡的朋友不容錯(cuò)過。
    2010-04-04
  • javascript獲取下拉列表框當(dāng)中的文本值示例代碼

    javascript獲取下拉列表框當(dāng)中的文本值示例代碼

    需要將用戶點(diǎn)擊下拉列表當(dāng)中某個(gè)選項(xiàng)后,將其所選的內(nèi)容保存起來,下面與大家分享下如何使用js獲取下拉列表框文本值,由此需求的朋友可以參考下
    2013-07-07
  • JavaScript實(shí)現(xiàn)滑塊補(bǔ)圖驗(yàn)證碼效果

    JavaScript實(shí)現(xiàn)滑塊補(bǔ)圖驗(yàn)證碼效果

    這篇文章主要給大家介紹了JavaScript如何實(shí)現(xiàn)滑塊補(bǔ)圖驗(yàn)證碼效果,文章通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以參考閱讀下
    2023-07-07
  • canvas的神奇用法

    canvas的神奇用法

    canvas有一個(gè)神奇的方法getImageData,它可以獲取canvas內(nèi)圖像的每一個(gè)像素點(diǎn)的顏色值獲取,而且可以改變。本文將對canvas實(shí)現(xiàn)圖片的濾鏡轉(zhuǎn)化的方法進(jìn)行介紹,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • xtree.js 代碼

    xtree.js 代碼

    xtree.js 代碼...
    2007-03-03
  • 詳解JS ES6編碼規(guī)范

    詳解JS ES6編碼規(guī)范

    本章節(jié)討論使用ES6編碼風(fēng)格到代碼中需要注意的點(diǎn)。通過記住這些關(guān)鍵點(diǎn),可以讓我們寫出更優(yōu)美的、可讀性更強(qiáng)的JavaScript ES6風(fēng)格的代碼。
    2021-05-05
  • Javascript的表單驗(yàn)證長度

    Javascript的表單驗(yàn)證長度

    JavaScript 可用來在數(shù)據(jù)被送往服務(wù)器前對 HTML 表單中的這些輸入數(shù)據(jù)進(jìn)行驗(yàn)證。通過本文給大家介紹Javascript的表單驗(yàn)證長度,需要的朋友參考下吧
    2016-03-03
  • JavaScript設(shè)計(jì)模式經(jīng)典之工廠模式

    JavaScript設(shè)計(jì)模式經(jīng)典之工廠模式

    工廠模式定義一個(gè)用于創(chuàng)建對象的接口,這個(gè)接口由子類決定實(shí)例化哪一個(gè)類。接下來通過本文給大家介紹JavaScript設(shè)計(jì)模式經(jīng)典之工廠模式,感興趣的朋友一起學(xué)習(xí)吧
    2016-02-02
  • 用javascript作一個(gè)通用向?qū)дf明

    用javascript作一個(gè)通用向?qū)дf明

    向?qū)Э梢宰屇愕木W(wǎng)站用戶快速上手使用你的web應(yīng)用,提高網(wǎng)站的吸引力。向?qū)б话惴譃楹脦讉€(gè)步驟,每個(gè)步驟收集一些數(shù)據(jù),并且支持退回功能,所有步驟完成后可以得到每一步的收集結(jié)果。這里給大家展示一種比較通用,靈活且簡單的向?qū)Э蚣堋?/div> 2011-08-08

最新評論