今天主要談談ES6中新增長的兩個數據結構,一個是Set一個是Map
他們究竟是什麼意思呢?
粗略的說Set是特殊的數組;Map是加強版的對象
下面咱們就來認識一下這哥倆數組
Set它相似於數組,只是這個數組裏的值都是惟一的,沒有重複!數據結構
const s = new Set([1,1,2,2]) [...s] //[1,2]
Set🐻:想在我這兒渾水摸魚,人云亦云、濫竽充數,不能gou!你必須是獨一無二的那一個!
它通常被用來去除數組中重複的成員、取並集、交集、差集,由於真的很方便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是一個加強版的對象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🐻:個人鍵一應俱全,任何類型的數據都沒問題,儘管放馬過來,對象能幹的事兒我都能幹,他幹不了的事兒,我也能幹!
好啦,以上就是我本次分享的所有內容啦,若是你以爲個人文章對你有一丟丟幫助,那麼請不要吝嗇你的贊👍哦,阿門~字符串