国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

JavaScript之集合Set操作的3類10種方法

開發 前端
集合Set是數學上的概念用在編程上,主要特點是組內的所有元素均不重復。本篇就給大家介紹Set集合操作的所有方法。

[[402110]]

集合Set是數學上的概念用在編程上,主要特點是組內的所有元素均不重復。

一、Set 的創建及其唯一的屬性

Set的創建與Array等相同,使用關鍵詞new

  1. let exampleSet = new Set(); 

Set只有一項屬性即size.

  1. > exampleSet = new Set([1, 5, 8]) 
  2. Set(3) { 1, 5, 8 } 
  3. > exampleSet.size 

 二、Set的內建操作方法

Set內建的操作方法包括:1)插入insertion 2) 刪除 deletion 3) contain包含三項

  1. // insertion  
  2. > sampleSet.add(17) 
  3. Set(1) { 17 } 
  4. > sampleSet.add(19) 
  5. Set(2) { 17, 19 } 
  6. > // delete 
  7. > sampleSet.add(101) 
  8. Set(3) { 17, 19, 101 } 
  9. > sampleSet.delete(101) 
  10. true 
  11. > sampleSet 
  12. Set(2) { 17, 19 } 
  13. > // contains 
  14. undefined 
  15. > sampleSet.has(19) 
  16. true 
  17. > sampleSet.has(101) 
  18. false 

 三、Set其他非內建但常用的操作

SET除去add, delete, has等基礎的內建操作之外,我們較為常用的是 intersection(交集A*B),isSuperSet超集,Union并集等。

首先,交集的思路就是將setA與setB中的元素,setA*setB 并用contains做出判斷。

  1. function intersectSets(setA, setB) { 
  2.   let intersection = new Set(); 
  3.   for (let ele of setB) { 
  4.     if (setA.has(ele)) { 
  5.       intersection.add(ele); 
  6.     } 
  7.   } 
  8.   return intersection; 
  9. let setA = new Set([9, 12, 13, 24]); 
  10. let setB = new Set([2, 13, 17, 24]); 
  11. console.log(intersectSets(setA, setB)); /// Set {2, 3}/ 

 其次是并集setA + setB 只需要逐個添加進來即可。

  1. function unionSet(setA, setB) { 
  2.     let union = new Set(setA); 
  3.     for (let elem of setB) { 
  4.         union.add(elem); 
  5.     } 
  6.     return union
  7. let setA = new Set([17, 23, 39, 47]),  
  8. setB = new Set([29, 38]), 
  9. setC = new Set([59]); 
  10. console.log(unionSet(setA,setB));  
  11. console.log(unionSet(setA,setC));  

 接著是差集,setA-setB將setB中的元素全部都刪除。

  1. function differenceSet(setA, setB) { 
  2.     let difference = new Set(setA); 
  3.     for (let ele of setB) { 
  4.         difference.delete(ele); 
  5.     } 
  6.     return difference; 
  7. let setA = new Set([35, 98, 56, 47]), 
  8.     setB = new Set([25, 47]); 
  9. console.log(differenceSet(setA, setB)); 

 最后是超集和子集,因為互為逆運算,只需要寫一個函數即可,具體實現,我們構思其否定形式,只要setB中有一個元素而不在其內,則判定為非超集。

  1. function isSuperset(setA, subset) { 
  2.   for (let elem of subset) { 
  3.     if (!setA.has(elem)) { 
  4.       return false
  5.     } 
  6.   } 
  7.   return true
  8. let setA = new Set([23, 35, 47, 59]), 
  9.   setB = new Set([23, 35]), 
  10.   setC = new Set([67]); 
  11. console.log(isSuperset(setA, setB)); 
  12. console.log(isSuperset(setA, setC));  

 以上從Set內建操作 add, has, delete之外的 insection, union, difference, isSuperSet 四種操作。

四、具體應用之數列查重

數列查重往往需要先排序再逐個檢查,但是用Set結構就簡單多了,只需要比較其數據長度即可。

  1. function checkDuplicates(arr) { 
  2.     let mySet = new Set(arr); 
  3.     return mySet.size < arr.length; 
  4. checkDuplicates([11,27,38,49,52]); // false 
  5. checkDuplicates([11,11,28,38,49,56]); // true 

 五、總結

以上就是Set集合操作的所有方法。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2013-01-07 10:44:00

JavaScriptjQueryJS

2020-11-10 10:23:25

IT成本CIO高級分析師

2018-12-19 19:30:46

JavaScript創建對象前端

2025-01-15 10:46:23

開發JavaScript集合

2014-06-23 16:56:46

2022-09-02 14:29:01

JavaScrip數組屬性

2020-06-04 08:17:44

JavaScript延展操作運算符開發

2010-12-02 08:12:16

2013-07-23 10:50:24

C程序

2019-02-16 05:00:49

物聯網IOT工業物聯網

2020-05-15 08:28:18

二進制文件binLinux

2017-06-09 13:51:42

Linux命令刪除文件

2010-05-27 18:18:14

MySQL修改root

2019-04-02 09:53:22

2016-03-31 14:16:56

2020-10-09 09:07:21

Python模塊重載開發

2021-08-18 11:55:25

Python函數代碼

2011-04-08 09:16:12

JavaScript

2025-06-03 08:33:53

2011-12-05 09:38:00

云計算
點贊
收藏

51CTO技術棧公眾號

九九热这里只有精品免费看| 狠狠色丁香久久婷婷综| 午夜亚洲福利| 中文字幕九色91在线| 污黄视频在线看| 日本aⅴ免费视频一区二区三区| 668精品在线视频| 澳门成人av网| 欧美三级视频在线播放| 国产噜噜噜噜久久久久久久久| 91视频-88av| 亚洲精品一区在线| 亚洲美女av在线| 香蕉视频在线看| 亚洲精品一二三四区| 日韩国产一级片| 日韩精品国产精品| 成人看片视频| 青青草国产免费一区二区下载| 日韩在线高清视频| 这里有精品可以观看| 91精品国产欧美日韩| 你懂的视频在线| 一区二区免费看| 日本人视频jizz页码69| 99久久国产免费看| 日本欧美视频在线观看| 国产一区三区三区| 亚洲第一导航| 日韩高清不卡一区| 免费在线观看91| 国产亚洲福利| 麻豆av一区| 亚洲欧美不卡| 欧美日产一区二区三区在线观看| 欧美人与禽猛交乱配视频| 国产欧美韩国高清| 久久电影院7| 91久久国产综合久久91精品网站| 天堂综合网久久| 久久久在线观看| 91免费精品国偷自产在线在线| 久久色在线播放| 久久久久久亚洲精品美女| 日韩在线免费视频| 日韩在线激情| 美乳少妇欧美精品| 亚洲精选av| 57pao精品| 欧美gay男男猛男无套| 91欧美激情另类亚洲| 国产一区欧美| 欧美精品一区二区三区四区五区| 一本一本久久| 中文字幕av久久| 18成人免费观看网站下载| 色吊丝一区二区| 国产精品福利在线| 中文字幕免费一区二区三区| 亚洲在线第一页| 国产精品一卡| 国产一二三四区在线观看| 国产成人免费高清| 黑人糟蹋人妻hd中文字幕| 久久奇米777| 7878视频在线观看| 色综合久久88色综合天天6 | 全球av集中精品导航福利| 国模无码大尺度一区二区三区| 欧美少妇一级片| 91亚洲精华国产精华精华液| 1区不卡电影| 欧美无砖专区一中文字| av岛国在线| 亚洲 欧美 日韩系列| 亚洲大片在线观看| 在线色视频网| 日韩欧美国产综合在线一区二区三区| 超碰在线97国产| 欧美大片免费看| 五月天激情综合网| 神马影院午夜我不卡| 26uuu色噜噜精品一区二区| 日本二区视频| 日韩视频在线一区二区| 久久三级毛片| 国产日韩在线亚洲字幕中文| 欧美aaa在线| eeuss鲁片一区| 日韩欧美电影在线| 美女扒开腿让男人桶爽久久动漫| 肥熟一91porny丨九色丨| 国产一区二区三区精品欧美日韩一区二区三区 | 宅男一区二区三区| 久久夜色精品国产欧美乱极品| 在线观看国产高清视频| 日韩精品在线免费播放| 亚洲小说图片视频| 一区视频二区视频| 亚洲欧美电影一区二区| 爱草tv视频在线观看992| 国产精品久久久久aaaa九色| 美女视频黄久久| 91短视频在线| 中日韩午夜理伦电影免费| 欧美日韩午夜| 69堂免费视频| 91精品欧美久久久久久动漫| 97久久亚洲| 亚洲综合欧美日韩| 亚洲一区成人在线| 国产精品1区在线| 日韩久久在线| 精品国产精品自拍| 激情综合婷婷| 日韩视频在线播放| 午夜精品在线视频一区| 成人97精品毛片免费看| 日本亚洲欧洲精品| 黑人巨大精品欧美一区二区免费| 亚洲欧美综合久久久久久v动漫| 春色成人在线视频| 国产精品成人一区二区艾草| 蜜臀av在线| 亚洲最大福利视频网站| 国产精品久久网站| 精品乱码一区二区三区四区| 欧美尤物一区| 日本大香伊一区二区三区| 欧洲精品一区| 一二三四视频社区在线| 91精品久久久久久久99蜜桃| 97精品97| 久草电影在线| 欧美一区二区三区免费观看| a级高清视频欧美日韩| 黄色激情在线播放| 日本一区二区三区视频免费看| 欧美中文字幕不卡| 男人天堂2020| 日韩在线视频导航| 麻豆国产精品一区二区三区| 成年女人的天堂在线| 国产精品偷伦一区二区| 中文字幕一区免费在线观看| 精品入口麻豆88视频| av免费看网址| 中文字幕日韩欧美在线| 国产精品456露脸| 英国三级经典在线观看| 亚洲精品永久www嫩草| 日韩丝袜美女视频| 久久裸体视频| 99在线视频观看| 日本成人三级| 日韩欧美视频一区| 久久亚洲视频| 成人高清免费在线| 日本一区视频在线| 日韩欧美国产1| 久久66热re国产| 涩涩涩在线视频| 久久久久五月天| 99v久久综合狠狠综合久久| 国产成人精品123区免费视频| 亚洲精品一区二| 日韩高清欧美高清| 国产成人在线色| 日本成人在线网站| 国产a级片免费观看| 性欧美xxxx| 亚洲午夜国产一区99re久久| 色琪琪久久se色| a天堂中文在线88| 亚洲国产精品久久久久婷婷老年 | 免费毛片在线不卡| 黄色污网站在线免费观看| 国产日本欧美一区二区三区| 欧美午夜电影在线| 国产日本精品| 久草在线资源福利站| 国产伦精品一区二区三区四区视频_ | 性欧美xxxx视频在线观看| 亚洲欧美在线高清| 国产精品7m凸凹视频分类| 麻豆影视在线| 日本一区免费| 久久视频国产精品免费视频在线| 国产精品国产三级国产普通话蜜臀| 欧美伦理在线视频| 黄色免费在线观看| 日韩国产一级片| 国产精品va在线| 欧美三级韩国三级日本三斤| 美女视频免费一区| 性欧美xxxx免费岛国不卡电影| 国产福利第一视频在线播放| 在线观看污视频| 7m精品福利视频导航| 欧美性猛片xxxx免费看久爱|