您现在的位置是:亿华云 > 域名

JavaScript之集合Set操作的3类10种方法

亿华云2025-10-02 18:56:42【域名】6人已围观

简介集合Set是数学上的概念用在编程上,主要特点是组内的所有元素均不重复。一、Set 的创建及其唯一的属性Set的创建与Array等相同,使用关键词newletexampleSet=newSet();

集合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 

 五、总结

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

很赞哦!(1)