91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中怎么利用Set操作集合

發布時間:2021-06-15 11:15:06 來源:億速云 閱讀:194 作者:Leah 欄目:web開發

JavaScript中怎么利用Set操作集合,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

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

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

let exampleSet = new Set();

Set只有一項屬性即size.

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

 二、Set的內建操作方法

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

// insertion  > sampleSet.add(17) Set(1) { 17 } > sampleSet.add(19) Set(2) { 17, 19 } > // delete > sampleSet.add(101) Set(3) { 17, 19, 101 } > sampleSet.delete(101) true > sampleSet Set(2) { 17, 19 } > // contains undefined > sampleSet.has(19) true > sampleSet.has(101) false

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

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

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

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

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

function unionSet(setA, setB) {     let union = new Set(setA);     for (let elem of setB) {         union.add(elem);     }     return union; } let setA = new Set([17, 23, 39, 47]),  setB = new Set([29, 38]), setC = new Set([59]); console.log(unionSet(setA,setB));  console.log(unionSet(setA,setC));

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

function differenceSet(setA, setB) {     let difference = new Set(setA);     for (let ele of setB) {         difference.delete(ele);     }     return difference; } let setA = new Set([35, 98, 56, 47]),     setB = new Set([25, 47]); console.log(differenceSet(setA, setB));

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

function isSuperset(setA, subset) {   for (let elem of subset) {     if (!setA.has(elem)) {       return false;     }   }   return true; } let setA = new Set([23, 35, 47, 59]),   setB = new Set([23, 35]),   setC = new Set([67]); console.log(isSuperset(setA, setB)); console.log(isSuperset(setA, setC));

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

四、具體應用之數列查重

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

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

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

晋江市| 勐海县| 和静县| 扎赉特旗| 井冈山市| 盐边县| 泾川县| 阆中市| 北海市| 黑龙江省| 阿鲁科尔沁旗| 连云港市| 阿拉尔市| 新泰市| 安康市| 承德县| 雷波县| 海城市| 沂源县| 潮安县| 乡城县| 田阳县| 东阿县| 麻江县| 攀枝花市| 香格里拉县| 屏东县| 二连浩特市| 沅陵县| 平果县| 海安县| 东阳市| 东光县| 玉树县| 隆回县| 吉水县| 博客| 镇远县| 长海县| 贞丰县| 闻喜县|