亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

 

在寫 Chrome插件時「插件分享,頭條文章代碼高亮,助力程序員文章分享」,剛好用到 Set 這個數(shù)據(jù)結構,所以這期就來談談 Set。

什么是 Set(集合)

Set 是 ES6 中新增的一種對象類型,它存儲的是唯一值的集合。

也就是說,即使 Set 中存入相同的元素,也只會被保留一個。

一文了解 JavaScript 中的 Set(集合)

 

Set 的創(chuàng)建

Set 的創(chuàng)建有兩種方法。

1.創(chuàng)建空集后填充元素

一文了解 JavaScript 中的 Set(集合)

 

也可以使用鏈式寫法

一文了解 JavaScript 中的 Set(集合)

 

2.Set 構造函數(shù)傳入可迭代對象

一文了解 JavaScript 中的 Set(集合)

 

需要注意,當接收字符串作為可迭代對象時,是逐個字符進行迭代。

一文了解 JavaScript 中的 Set(集合)

 

確定 Set 的大小

通過 .size ——

一文了解 JavaScript 中的 Set(集合)

 

擴展一下,為什么不是使用常見的 length?

根據(jù) ECMA-262 規(guī)范,數(shù)據(jù)集合(collection)的形式分為兩大類:

  • Indexed Collection(索引集合)
  • Keyed Collection(鍵集合)

像字符串、數(shù)組等屬于索引集合。它們通過索引進行元素的訪問。這種形式的集合使用 length 確定集合大小。

而像 Map(映射),Set(集合)等是屬于鍵集合。它們通過鍵來進行元素的訪問。這種形式的集合使用 size 來確定集合的大小。

Set 新增元素

通過 .add(),并且可以鏈式操作 ——

一文了解 JavaScript 中的 Set(集合)

 

Set 刪除元素

通過 .delete() ——

一文了解 JavaScript 中的 Set(集合)

 

檢查 Set 中是否存在某個元素

通過 .has() ——

一文了解 JavaScript 中的 Set(集合)

 

清空 Set 中元素

通過 .clear() ——

一文了解 JavaScript 中的 Set(集合)

 

Set 的迭代操作

Set 屬于可迭代對象,迭代順序是基于插入的順序。所以,它也存在可迭代對象的一些方法。

1.遍歷 Set

使用 .forEach()

一文了解 JavaScript 中的 Set(集合)

 

作為可迭代對象,也可以使用 for of 進行遍歷

一文了解 JavaScript 中的 Set(集合)

 

2.迭代方法

根據(jù) ECMA-262 定義,Set 的迭代過程類似于具有相同鍵值對的 Map。

For iteration purposes, a Set Appears similar to a Map where each entry has the same value for its key and value.

所以,Set 中的 .keys() 與 .values() 的 返回相同。均返回一個迭代器對象,包含 Set 中的按插入順序排列的所有元素的值。

而鍵值對 .entries() 返回的迭代器對象,包含 Set 中的按插入順序排列的所有元素的值的 [value, value] 數(shù)組。

一文了解 JavaScript 中的 Set(集合)

 

常用場景

數(shù)組去重

一文了解 JavaScript 中的 Set(集合)

 

除了這個使用場景外,日常中很少有使用 Set 的地方。

部分原因在于,與提供了很多內置方法的數(shù)組 Array 相比,Set 的內置方法還是偏少。例如:基本的交集,并集等操作都沒有提供。

因此,下期我們就對 Set 進行一個擴展,手把手將它改造成更加實用的結構。不妨先收藏加關注。

分享到:
標簽:JavaScript Set
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定