ES6學(xué)習(xí)-7.Set集合與Map集合

一、Set集合

Set類型是一種有序列表舅巷,其中包含了一些相互獨(dú)立的非重復(fù)值,可以快速訪問其中的數(shù)據(jù)河咽,更有效的追蹤各種離散值。

1赋元、創(chuàng)建Set集合并添加元素

創(chuàng)建并添加相關(guān)元素的代碼如下:

2忘蟹、has()飒房,delete(),clear()方法

has()方法判斷Set集合是否存在某個(gè)值媚值。

delete()方法刪除Set集合中的某一個(gè)元素狠毯。

clear()方法移除集合中的所有元素。

3褥芒、Set集合的forEach()方法

代碼如下:

forEach回調(diào)中如果要使用this嚼松,就需要把this傳入進(jìn)去,但如果使用箭頭函數(shù)則無需傳入锰扶,如下面的代碼:

4献酗、將Set集合轉(zhuǎn)換成數(shù)組

代碼如下:

5、Weak Set集合

用Set集合保存的變量和對象坷牛,即使初始對象被回收或者釋放罕偎,但是Set集合中一樣存在,例如下面的代碼:

所以有時(shí)候京闰,當(dāng)我們把原始引用清楚的時(shí)候颜及,也希望Set集合也會被垃圾回收機(jī)制回收掉。這個(gè)時(shí)候就可以使用Weak Set集合蹂楣,當(dāng)原始引用被設(shè)置成null俏站,清除的時(shí)候,Weak Set集合就會被垃圾回收機(jī)制也回收掉痊土。

Weak Set初始化和Set是一樣肄扎,支持add(),has()施戴,delete()方法反浓。但是有幾點(diǎn)要注意:

*Weak Set集合不支持傳入非對象參數(shù),會報(bào)錯(cuò)赞哗。

*Weak Set集合不可迭代忱辅,所以不能用for-of循環(huán)。

*Weak Set集合不暴露任何迭代器趋距。

*Weak Set集合不支持forEach()方法呜袁。

*Weak Set集合不支持size屬性。

所以當(dāng)你只需要跟蹤對象引用藤乙,你更應(yīng)該使用Weak Set集合而不是普通的Set集合猜揪。


二、Map集合

Map是一種存儲許多鍵值對的有序列表坛梁,其中的鍵名和對應(yīng)的值支持所有的數(shù)據(jù)類型而姐。所以當(dāng)鍵名分別為5和"5"時(shí),這是一個(gè)兩個(gè)獨(dú)立的鍵划咐。并不會像對象一樣拴念,強(qiáng)制轉(zhuǎn)化成字符串钧萍。

1、初始化和添加

2政鼠、支持的方法

has(key) ?檢測指定的鍵名在Map集合中是否已經(jīng)存在风瘦。

delete(key) ?從Map集合中移除指定鍵名以及其對應(yīng)的值。

clear() ?移除Map集合中的所有鍵值對公般。

3万搔、Map集合的初始化方法

可以傳入數(shù)組初始化,例如:

4官帘、Map集合的forEach()方法

和Set集合的forEach方法相似瞬雹,例如:

5、Weak Map集合

Weak Map集合中的鍵名必須是一個(gè)對象遏佣,如果使用非對象鍵名會報(bào)錯(cuò)挖炬。

Weak Map集合最大的用途就是保存Web頁面中的Dom元素。一些庫如果自定義一些Dom元素状婶,則可以使用Weak Map集合來保存意敛。

支持的方法:has(),delete()膛虫,clear()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末草姻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子稍刀,更是在濱河造成了極大的恐慌撩独,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件账月,死亡現(xiàn)場離奇詭異综膀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)局齿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門剧劝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人抓歼,你說我怎么就攤上這事讥此。” “怎么了谣妻?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵萄喳,是天一觀的道長。 經(jīng)常有香客問我蹋半,道長他巨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮染突,結(jié)果婚禮上匪傍,老公的妹妹穿的比我還像新娘。我一直安慰自己觉痛,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布茵休。 她就那樣靜靜地躺著薪棒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪榕莺。 梳的紋絲不亂的頭發(fā)上俐芯,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機(jī)與錄音钉鸯,去河邊找鬼吧史。 笑死,一個(gè)胖子當(dāng)著我的面吹牛唠雕,可吹牛的內(nèi)容都是我干的贸营。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼岩睁,長吁一口氣:“原來是場噩夢啊……” “哼钞脂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捕儒,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤冰啃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后刘莹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阎毅,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年点弯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扇调。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蒲拉,死狀恐怖肃拜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情雌团,我是刑警寧澤燃领,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站锦援,受9級特大地震影響猛蔽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一曼库、第九天 我趴在偏房一處隱蔽的房頂上張望区岗。 院中可真熱鬧,春花似錦毁枯、人聲如沸慈缔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽藐鹤。三九已至,卻和暖如春赂韵,著一層夾襖步出監(jiān)牢的瞬間娱节,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工祭示, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肄满,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓质涛,卻偏偏與公主長得像稠歉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子蹂窖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容