今天小編給大家分享一下es6的set和map的區(qū)別有哪些的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
創(chuàng)新互聯(lián)專注于新樂網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供新樂營銷型網(wǎng)站建設(shè),新樂網(wǎng)站制作、新樂網(wǎng)頁設(shè)計、新樂網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造新樂網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供新樂網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
區(qū)別:1、set指的是“集合”結(jié)構(gòu),而Map指的是“字典”結(jié)構(gòu);2、set是以“[value, value]”的形式儲存元素,而Map是以“[key, value]”的形式儲存;3、Map可用get()通過鍵查找特定值并返回,而set不行。
本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。
簡述:
Set 和 Map 主要的應(yīng)用場景在于 數(shù)據(jù)重組 和 數(shù)據(jù)儲存。
Set 是一種叫做集合的數(shù)據(jù)結(jié)構(gòu),Map 是一種叫做字典的數(shù)據(jù)結(jié)構(gòu)。
集合 與 字典 的區(qū)別:
共同點:集合、字典 可以儲存不重復的值
不同點:集合 是以 [value, value]的形式儲存元素,字典 是以 [key, value] 的形式儲存
ES6 新增的一種新的數(shù)據(jù)結(jié)構(gòu),類似于數(shù)組,但成員是唯一且無序的,沒有重復的值。
Set 本身是一種構(gòu)造函數(shù),用來生成 Set 數(shù)據(jù)結(jié)構(gòu)。
Set 對象允許你儲存任何類型的唯一值,無論是原始值或者是對象引用。
const s = new Set() [1, 2, 3, 4, 3, 2, 1].forEach(x => s.add(x)) for (let i of s) { console.log(i) // 1 2 3 4 } // 去重數(shù)組的重復對象 let arr = [1, 2, 3, 2, 1, 1] [... new Set(arr)] // [1, 2, 3]
注意:向 Set 加入值的時候,不會發(fā)生類型轉(zhuǎn)換,所以`5`和`"5"`是兩個不同的值。Set 內(nèi)部判斷兩個值是否不同,使用的算法叫做“Same-value-zero equality”,它類似于**精確相等**運算符(`===`),主要的區(qū)別是**`NaN`等于自身,而精確相等運算符認為`NaN`不等于自身。**
let set = new Set(); let a = NaN; let b = NaN; set.add(a); set.add(b); set // Set {NaN} let set1 = new Set() set1.add(5) set1.add('5') console.log([...set1]) // [5, "5"]
操作方法:
add(value):新增,相當于 array里的push。
delete(value):存在即刪除集合中value。
has(value):判斷集合中是否存在 value。
clear():清空集合。
遍歷方法:遍歷方法(遍歷順序為插入順序)
keys():返回一個包含集合中所有鍵的迭代器。
values():返回一個包含集合中所有值得迭代器。
entries():返回一個包含Set對象中所有元素得鍵值對迭代器。
forEach(callbackFn, thisArg):用于對集合成員執(zhí)行callbackFn操作,如果提供了 thisArg 參數(shù),回調(diào)中的this會是這個參數(shù),沒有返回值。
是一組鍵值對的結(jié)構(gòu),具有極快的查找速度。
const m = new Map() const o = {p: 'haha'} m.set(o, 'content') m.get(o) // content m.has(o) // true m.delete(o) // true m.has(o) // false
操作方法:
set(key, value):向字典中添加新元素。
get(key):通過鍵查找特定的數(shù)值并返回。
has(key):判斷字典中是否存在鍵key。
delete(key):通過鍵 key 從字典中移除對應(yīng)的數(shù)據(jù)。
clear():將這個字典中的所有元素刪除。
遍歷方法:
Keys():將字典中包含的所有鍵名以迭代器形式返回。
values():將字典中包含的所有數(shù)值以迭代器形式返回。
entries():返回所有成員的迭代器。
forEach():遍歷字典的所有成員。
以上就是“es6的set和map的區(qū)別有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享文章:es6的set和map的區(qū)別有哪些
本文網(wǎng)址:http://aaarwkj.com/article32/pccgpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站排名、品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站收錄、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)