JS中拜訪Set、Map兩兄弟

今天主要談談ES6中新增長的兩個數據結構,一個是Set一個是Map
他們究竟是什麼意思呢?
粗略的說Set是特殊的數組;Map是加強版的對象
下面咱們就來認識一下這哥倆數組

Set

Set它相似於數組,只是這個數組裏的值都是惟一的,沒有重複!數據結構

const s = new Set([1,1,2,2])
[...s] //[1,2]
Set🐻:想在我這兒渾水摸魚,人云亦云、濫竽充數,不能gou!你必須是獨一無二的那一個!

Set用途

它通常被用來去除數組中重複的成員、取並集、交集、差集,由於真的很方便ui

去重

const s = new Set([1,1,2,2])
[...s] //[1,2]

取並集

let s1 = new Set([1,2])
let s2 = new Set([2,3])
let union = new Set([...s1,...s2])
union // Set {1,2,3}

取交集

let s1 = new Set([1,2]);
let s2 = new Set([2,3]);
let intersect = new Set([...s1].filter(x =>s2.has(x)))
intersect // Set {2}

取差集

let s1 = new Set([1,2]);
let s2 = new Set([2,3]);
let difference = new Set([...s1].filter(x =>!s2.has(x)))
difference // Set {1,3}

Map

Map它相似於對象,也是鍵值對的集合,可是"鍵"的範圍不侷限於字符串啦,各類類型的值包括對象均可以當它的鍵,能夠說Map是一個加強版的對象code

// 常規字符串做爲鍵
// 對象的定義
const obj = {}
obj.name = 'chuichui'
obj //{name: "chuichui"}
// Map的定義
const map = new Map()
map.name = 'chuichui'
map //Map {name: "chuichui"}

Map中的鍵還能夠是一個數組,只要你想到的均可以!對象

const map = new Map()
const arr = [1,2,3]
map.set(arr,1)
map.get(arr) // 1
Map🐻:個人鍵一應俱全,任何類型的數據都沒問題,儘管放馬過來,對象能幹的事兒我都能幹,他幹不了的事兒,我也能幹!

最後 🙌

好啦,以上就是我本次分享的所有內容啦,若是你以爲個人文章對你有一丟丟幫助,那麼請不要吝嗇你的贊👍哦,阿門~字符串

相關文章
相關標籤/搜索