我们项目中大多数是在与数组斗智斗勇,由于之前项目有使用到类似于差集这种思路,便一发不可收拾入了这个坑,在认真思考之后,发现实战项目中很多地方都可以用到这个知识点,于是便写个博客以记录心得感悟
首先要介绍一下何为交集/差集/并集/补集
PS:已经了解的同志们可以从目录直接跳转过去进行阅读
两个集合A和B的交集是含有所有既属于A又属于B的元素,而没有其他元素的集合。 A和B的交集写作"A∩B"。形式上:x属于A∩B当且仅当x属于A且x属于B。
例如:集合[1,2,3]和[2,3,4]的交集为[2,3]。简而言之:两个数组重复的子元素部分为交集。
直接来最高级的ES6语法
let a = [1,2,3,4,5];
let b = [2,4,6,8,10];
let c = a.filter(x => new Set(b).has(x));
console.log(c);
//输出的结果为[2, 4]
可以用交集来检测数组之前和之后是否发生了改变,如果改变了再进行接口数据请求
否则就算用户进行操作,因为数据没有发生改变的原因,不进行对应的接口请求(性能优化细节)
一般地,设A,B是两个集合,由所有属于A且不属于B的元素组成的集合,叫做集合A减集合B(或集合A与集合B之差),类似地,对于集合A. B,我们把集合{x/x∈A,且x¢B}叫做A与B的差集,记作A-B记作A-B(或A\B),即A-B={x|x∈A,且x ¢B}(或A\B={x|x∈A,且x ¢B} B-A={x/x∈B且x¢A} 叫做B与A的差集
直接来最高级的ES6语法
let a = [1,2,3,4,5];
let b = [2,4,6,8,10];
let c = a.filter(x => !new Set(b).has(x));
console.log(c);
//输出的结果为[1, 3, 5]
在项目中权限赋予等功能中,admin权限字段子类很多会包含user字段子类等一些权限的字段,这个时候我们便可以利用差集来只添加那些不重复的子集(性能优化细节)
给定两个集合A,B,把他们所有的元素合并在一起组成的集合,叫做集合A与集合B的并集,记作A∪B,读作A并B。
直接来最高级的ES6语法
let a = [1,2,3,4,5]
let b = [2,4,6,8,10]
let c= Array.from(new Set([...a, ...b]));
console.log(c)
//最终的输出结果为[1, 2, 3, 4, 5, 6, 8, 10]
并集在数组中的作用其实类似于枚举,把两个数组不重复的属性给枚举出来之后,返回一个新的数组,它在项目中并不经常使用,基本上用来合并一个数据A和数据B所有的子项(不经常使用)
由于有点鸡肋,随便放一张图.
补集的意思是一般地,设S是一个集合,A是S的一个子集,由S中所有不属于A的元素组成的集合,叫做子集A在S中的绝对补集。在集合论和数学的其他分支中,
存在补集的两种定义:相对补集和绝对补集
直接来最高级的ES6语法
let a = [1,2,3,4,5]
let b = [2,4,6,8,10]
let c = Array.from(new Set([...a, ...b]));
console.log(c)
//最后的数据结果为[1, 3, 5, 6, 8, 10]
简单而言,补集就是两个数组不重复的所有子集给抽离出来,然后融合成一个集合的意思,由于此方法更加鸡肋,便不再上实例说明。
最后放上一张镇楼图
好记性不如烂笔头
随时随地给自己对项目的状态进行实时的记录,想来以后回忆起来也是极美的
doctype就是其中一个: !DOCTYPE HTML PUBLIC -//W3C//DTD XHTML 1.1//EN http://...
本文介绍如何使用VS2015作为编译开发环境,调用OpenCV3.31和Qt5.9.1写图像处理的...
搭建lvs keepalivd DR模式双机热备基础与高可用群集 这里只说keepalivd 软件的原...
先要安装event扩展,这样才可以使用libevent的事件机制 pecl install event 测试...
Function File_GetLastModified( sFile ) Dim objFileObj, objFile Set objFileO...
首先看下正则表达式思维导图: 一、校验数字的表达式 1 数字: ^[0-9]*$ 2 n位的...
力扣春季赛采购方案 前言 一 采购方案 二 解题思路 三 每日共勉 前言 今天的力扣...
复制代码 代码如下: public static boolean isNum(String str) { boolean flag=t...
本文实例讲述了正则表达式教程之前后查找lookaround。分享给大家供大家参考,具...
1.创建 引用 变量 ?int rat; int roatentsrat; //此式中不是地址运算符而是类型...