javascript
set集合判断集合中是否有无元素_一文了解 JavaScript 中的 Set(集合)- 对 Set 的扩展...
閱讀全文需要 4 分鐘。主要介紹對 ES6 中的 Set 集合方法的擴展。閱讀本文后,你能創建出對 Set 方法擴展,并且結合下期內容,將其發布到 NPM 中。
往期回顧
一文了解 JavaScript 中的 Set(集合)
一文了解 JavaScript 中的 Set(集合)- 多種去重技巧
上兩期介紹了 Set 的基本操作方法,Set 的去重和擴展等。
本期內容
本期對 Set 的常用功能進行擴展,文末給出完整源碼。
為什么對簡單的 Set 連續講幾期?這里我想解釋一下。
很多朋友知道,假如對開源社區有貢獻,會為自己面試加分不少。可是往往找不到突破口進行參與。
其實,為開源作貢獻十分簡單,發現項目或者框架有問題的,改正它;發現缺少的功能,補充它。
如果遇到問題,等待別人解決,其實就是將這樣的一個機會讓給了其他人。
從 Set 的第一期開始看,你會看到一個完整的開源貢獻過程 ——
- 了解現有功能的局限性
- 產生優化功能的想法
- 實際編碼擴展 Set 的功能
- 發布到 NPM 和 Github
這幾期就是想通過這個簡單的例子,不單單讓大家了解到 Set 的基礎知識,更是希望大家明白開源貢獻沒那么高不可攀,破除畏難情緒,踏出第一步。
下面是本期正文。
集合的基本操作
數學中集合的基本操作包括 ——
集合的關系
- 空集
- 子集
- 真子集
- 相等
集合的基本運算
- 并集
- 交集
- 全集
- 補集
針對集合的這些操作,我們使用 Set 進行對應的擴展。
空集
集合中不存在任何元素,即大小為 0。
因為我們是擴展 Set,所以可以在原型鏈上對其直接定義方法。
子集
如果集合 A 中任意一個元素都是集合 B 的元素,那么 A 是 B 的子集。
核心是遍歷當前集合,如果當前集合中每個元素都在目標集合中,那么當前集合就是目標集合的子集。
真子集
如果集合 A 是集合 B 的子集,且集合 B 中至少有一個元素不屬于 A,那么 A 是 B 的真子集。
這里有一些小技巧,根據真子集的定義,真子集會比目標集合小。所以通過先比對大小,再判斷是否屬于子集,清晰易懂。
同樣的技巧也應用在判斷集合相等中 ——
相等
兩個集合的元素完全相同。
集合的大小相等,且為子集關系,則兩個集合相等。
并集
包含給定所有集合中的元素。所以只需遍歷所有集合,將其元素合并到一個集合中。
交集
由所有屬于給定集合的共同元素組成。
這里也存在一定技巧,先獲取最大的集合,然后通過判斷最大集合中的元素是否同時存在于其它集合中來實現。
結語
全集和補集留待大家思考,源碼可私信「集合擴展」獲取。
下期內容就跟大家將這個擴展發布到 NPM 中。
這段時間待業在家,主要做一些前端的分享,畢竟最熟悉是前端這塊。個人的技術棧包括 Python,Angular,JavaScript,Docker 等。 如果你對哪方面的知識感興趣或有疑問,歡迎一起討論。
最后的最后,點收藏的同時不妨點個贊吧:)
總結
以上是生活随笔為你收集整理的set集合判断集合中是否有无元素_一文了解 JavaScript 中的 Set(集合)- 对 Set 的扩展...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue响应式原理
- 下一篇: 导出数据生成excel