成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發(fā) 前端
集合Set是數(shù)學(xué)上的概念用在編程上,主要特點(diǎn)是組內(nèi)的所有元素均不重復(fù)。本篇就給大家介紹Set集合操作的所有方法。

[[402110]]

集合Set是數(shù)學(xué)上的概念用在編程上,主要特點(diǎn)是組內(nèi)的所有元素均不重復(fù)。

一、Set 的創(chuàng)建及其唯一的屬性

Set的創(chuàng)建與Array等相同,使用關(guān)鍵詞new

  1. let exampleSet = new Set(); 

Set只有一項(xiàng)屬性即size.

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

 二、Set的內(nèi)建操作方法

Set內(nèi)建的操作方法包括:1)插入insertion 2) 刪除 deletion 3) contain包含三項(xiàng)

  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其他非內(nèi)建但常用的操作

SET除去add, delete, has等基礎(chǔ)的內(nèi)建操作之外,我們較為常用的是 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 只需要逐個(gè)添加進(jìn)來(lái)即可。

  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)); 

 最后是超集和子集,因?yàn)榛槟孢\(yùn)算,只需要寫一個(gè)函數(shù)即可,具體實(shí)現(xiàn),我們構(gòu)思其否定形式,只要setB中有一個(gè)元素而不在其內(nèi),則判定為非超集。

  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內(nèi)建操作 add, has, delete之外的 insection, union, difference, isSuperSet 四種操作。

四、具體應(yīng)用之?dāng)?shù)列查重

數(shù)列查重往往需要先排序再逐個(gè)檢查,但是用Set結(jié)構(gòu)就簡(jiǎn)單多了,只需要比較其數(shù)據(jù)長(zhǎng)度即可。

  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 

 五、總結(jié)

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

 

責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2013-01-07 10:44:00

JavaScriptjQueryJS

2020-11-10 10:23:25

IT成本CIO高級(jí)分析師

2025-01-15 10:46:23

開發(fā)JavaScript集合

2018-12-19 19:30:46

JavaScript創(chuàng)建對(duì)象前端

2022-09-02 14:29:01

JavaScrip數(shù)組屬性

2014-06-23 16:56:46

2020-06-04 08:17:44

JavaScript延展操作運(yùn)算符開發(fā)

2019-02-16 05:00:49

物聯(lián)網(wǎng)IOT工業(yè)物聯(lián)網(wǎng)

2020-05-15 08:28:18

二進(jìn)制文件binLinux

2010-12-02 08:12:16

2013-07-23 10:50:24

C程序

2017-06-09 13:51:42

Linux命令刪除文件

2019-04-02 09:53:22

2010-05-27 18:18:14

MySQL修改root

2011-04-08 09:16:12

JavaScript

2016-03-31 14:16:56

2021-08-18 11:55:25

Python函數(shù)代碼

2025-06-03 08:33:53

2011-12-05 09:38:00

云計(jì)算

2009-08-18 13:22:55

C#動(dòng)態(tài)調(diào)用Web服務(wù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人在线视频免费看 | 91国产在线视频在线 | 国产精品免费一区二区 | 国产在线观看免费 | 成年人在线观看视频 | 99精品欧美一区二区三区 | 国产999在线观看 | 日本又色又爽又黄又高潮 | 亚洲人成人一区二区在线观看 | 国产黄色av网站 | 精品国产一区二区三区免费 | 久久久久国产 | 久草院线 | 免费激情网站 | 黄色一级视频 | 亚洲一区二区精品视频在线观看 | 国产视频在线观看一区二区三区 | 亚洲欧美中文字幕 | a级免费黄色片 | 99久久久久| 黄色大片在线 | 欧美一区二区视频 | 久久不卡区 | 国产一级一片免费播放 | 亚洲欧洲日韩精品 中文字幕 | 伊人婷婷 | 国产一区二区免费 | 精品久久一区 | 亚洲精品一区二区三区中文字幕 | 欧美中国少妇xxx性高请视频 | 成人妇女免费播放久久久 | 二区不卡 | 欧美亚洲综合久久 | 91n成人 | www日本高清 | 91麻豆精品国产91久久久久久 | 亚洲一区精品视频 | 亚洲一区中文字幕在线观看 | av天天看 | 成人水多啪啪片 | 午夜精品一区二区三区在线观看 |