ES6數據集合 set 和 map

set

set 類似于數組疟呐,沒有重復的元素艘刚,開發(fā)中可用于去重操作饮笛,它的key和value相等

初始化一個set集合

let set = new Set([1,2,3,4,4])庇茫;
console.log(set); // Set { 1, 2, 3, 4 } 
  • 一個屬性

    size

    返回集合的長度(去重后的長度)

    console.log(set.size) 
    
  • 四個方法

    • add()

      添加一個元素

      set.add('小明')
      

      鏈式添加多個元素

      set.add('小明').add('小華')
      
  • delete()

    刪除一個元素

    set.delete('小明')
    
  • has()

    判斷set集合中是否存在該元素 返回true/false

    set.has('小明')傍睹;
    
  • clear()

    清除set集合中的所有元素

    set.clear()
    

    沒有返回值

    console.log(set.clear())  // undefined
    

map

map類似于對象棺牧,本質上是鍵值對的集合座舍。字符串、對象都可以當作鍵

初始化一個map集合

let map = new Map(
  [
    ['name', '張三'],
    ['age', 14],
    ['age', 12],
  ]
)

可以去重陨帆,上述代碼中的age將被覆蓋成12

注意事項:

去重只針對于map集合的鍵是基本數據類型曲秉。對于Object這種復雜的數據類型不去重

let map = new Map(
  [
    ['name', '張三'],
    ['age', 14],
    ['age', 12],
    [{}, '123'],
    [{}, '456'],
  ]
)
  • 屬性

    • size (去重后的長度)
    console.log(map.size) 
    
  • 一些方法

    • set()

      設置鍵值對

      map.set('height', 1.78)
      
    • get()

      通過鍵名獲取元素

      console.log(map.get('height')); // 1.78
      
    • delete()

      刪除一個鍵值對

      map.delete('height')
      
    • has()

      判斷是否有該鍵值

      console.log(map.has('height'));
      
    • clear()

      清除map集合中的數據

      map.clear()
      
    • keys(), values(), entries()

      console.log(map.keys()); // [Map Iterator] { 'name', 'age' }
      console.log(map.values()); // [Map Iterator] { '張三', 12 }
      console.log(map.entries()); // [Map Iterator] { [ 'name', '張三' ], [ 'age', 12 ] }
      

對map進行遍歷

 map.forEach((value, index) => {
   console.log(value);
   console.log(index);
 })
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市疲牵,隨后出現的幾起案子承二,更是在濱河造成了極大的恐慌,老刑警劉巖纲爸,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亥鸠,死亡現場離奇詭異,居然都是意外死亡识啦,警方通過查閱死者的電腦和手機负蚊,發(fā)現死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颓哮,“玉大人家妆,你說我怎么就攤上這事∶崦” “怎么了伤极?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵蛹找,是天一觀的道長。 經常有香客問我哨坪,道長庸疾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任当编,我火速辦了婚禮届慈,結果婚禮上,老公的妹妹穿的比我還像新娘忿偷。我一直安慰自己金顿,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布牵舱。 她就那樣靜靜地躺著,像睡著了一般缺虐。 火紅的嫁衣襯著肌膚如雪芜壁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天高氮,我揣著相機與錄音慧妄,去河邊找鬼。 笑死剪芍,一個胖子當著我的面吹牛塞淹,可吹牛的內容都是我干的。 我是一名探鬼主播罪裹,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼饱普,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了状共?” 一聲冷哼從身側響起套耕,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎峡继,沒想到半個月后冯袍,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡碾牌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年康愤,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舶吗。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡征冷,死狀恐怖,靈堂內的尸體忽然破棺而出誓琼,到底是詐尸還是另有隱情资盅,我是刑警寧澤调榄,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站呵扛,受9級特大地震影響每庆,放射性物質發(fā)生泄漏。R本人自食惡果不足惜今穿,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一缤灵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蓝晒,春花似錦腮出、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至洛二,卻和暖如春馋劈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晾嘶。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工妓雾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人垒迂。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓械姻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親机断。 傳聞我的和親對象是個殘疾皇子楷拳,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345