日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

set集合判断集合中是否有无元素_一文了解 JavaScript 中的 Set(集合)- 对 Set 的扩展...

發布時間:2023/12/10 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 的扩展...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。