前言

总结了一下有关于数组的差集、交集、并集的方法;

es6的方法实现

去重

/**

* 简单的数组去重

* @param {Array} a

*/

const uniquelize = function(a) {

if (a.constructor !== Array) {

throw TypeError("请传入数组类型");

}

return Array.from(new Set(a));

};

并集

/**

* 简单数组的并集

* @param {Array} a

* @param {Array} b

*/

const getUnion = function(a,b){

if(a.constructor === Array && b.constructor === Array){

let set1 = new Set(a);

let set2 = new Set(b);

return Array.from(new Set([...set1,...set2]));

}

return null;

}

交集

/**

* 简单数组的交集

* @param {Array} a

* @param {Array} b

*/

const getIntersect = function(a,b){

if(a.constructor === Array && b.constructor === Array){

let set1 = new Set(a);

let set2 = new Set(b);

return Array.from(new Set([...set1].filter( x => set2.has(x))));

}

return null;

}

差集

/**

* 简单数组的差集

* @param {Array} a

* @param {Array} b

*/

const getDifference = function(a,b){

if(a.constructor === Array && b.constructor === Array){

let set1 = new Set(a);

let set2 = new Set(b);

return Array.from(new Set([...set1].filter(x => !set2.has(x))));

}

return null;

}

es5的方法实现

去重

/**

* 简单的数组去重

* @param {Array} a

*/

var uniquelize = function(a) {

if (a.constructor !== Array) {

throw TypeError("请传入数组类型");

}

var obj = {},

arr = [];

for (var i = 0, j = a.length; i < j; i++) {

if (!obj[a[i]]) {

obj[a[i]] = 1;

arr.push(a[i]);

}

}

return arr;

};

交集

/**

* 简单数组的交集

*/

var getIntersect = function(){

var arr = new Array();

var obj = new Object();

var arguLen = arguments.length;

for(var i = 0; i

if(arguments[i].constructor !== Array){

throw TypeError("请都传入数组类型");

}

for(var j = 0,length = arguments[i].length;j

var item = arguments[i][j];

if(!obj[item]){

obj[item] = 1;

}else{

obj[item]++;

if(obj[item]===arguLen){

arr.push(item);

}

}

}

}

return arr;

}

并集

/**

* 简单数组的并集

*/

var getUnion = function(){

var arr = new Array();

var obj = new Object();

var arguLen = arguments.length;

for(var i = 0; i

if(arguments[i].constructor !== Array){

throw TypeError("请都传入数组类型");

}

for(var j = 0,length = arguments[i].length;j

var item = arguments[i][j];

if(!obj[item]){

obj[item] = 1;

arr.push(item);

}else{

//统计一下出现了多少次

obj[item]++;

}

}

}

return arr;

}

差集

/**

* 简单数组的差集

*/

var getDifference = function(){

var arr = new Array();

var obj = new Object();

var arguLen = arguments.length;

for(var i = 0; i

if(arguments[i].constructor !== Array){

throw TypeError("请都传入数组类型");

}

for(var j = 0,length = arguments[i].length;j

var item = arguments[i][j];

if(!obj[item]){

obj[item] = 1;

arr.push(item);

}else{

obj[item]++;

var index = arr.indexOf(item);

//存在就删除掉

if(index !== -1){

arr.splice(index,1);

}

}

}

}

return arr;

}

php简述一下并集交集差集,总结了一下js中的差集、交集、并集相关推荐

  1. oracle关联查询取交集,Oracle 取两个表中数据的交集并集差异集合

    Oracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据 例如现有如下表,要求找出工资2500(不含2500)以上并且是男性(M)的员工编号,那么就要利用这两个表的关系做一个交集 ...

  2. Python求两个list的交集、并集、差(补)集、对称差集的方法

    Python求两个list的交集.并集.差(补)集.对称差集的方法 摘要 1. 总结 1.1 求两个list的交.并.差(补).对称差集 - 使用set集合运算符 1.2 求两个list的交.并.差( ...

  3. 站长在线Python精讲:Python中集合的交集、并集、差集和对称差集运算方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<Python中集合的交集.并集.差集和对称差集运算方法详解>.主要讲的是集合运算的相关的概念,及运算方法,包括:集合的交集. ...

  4. 在EXCEL中取出有交集的数据列

    在EXCEL中取出有交集的数据列 Sub SQL_Excel_2010() 'On Error Resume Next '如果出bai现错误,忽略,然后执行下一行代码 Application.Scre ...

  5. 简述JS中THIS的指向?

    这里是修真院前端小课堂,每篇分享文从 八个方面深度解析前端知识/技能,本篇分享的是: [简述JS中THIS的指向?] 大家好,我是IT修真院武汉分院web第16期的学员孟晨,一枚正直纯洁善良的web程 ...

  6. 打印出两个set中差集_Java之两个Set集合的交集、差集和并集

    一.求交集 注:场景是读取两个文件,把文件内容放到Set中,求两个文件之间的共同元素.在这里只写对Set的操作. public static void main(String[] args) thro ...

  7. python两个列表的差集_Python求两个list的差集、交集与并集的方法

    本文实例讲述了Python求两个list的差集.交集与并集的方法.分享给大家供大家参考.具体如下: list就是指两个数组之间的差集,交集,并集了,这个小学数学时就学过的东西,下面就以实例形式对此加以 ...

  8. Java中求集合交集、并集、差集

    前言 如果是自定义类,需要重写equals方法,如果使用Set集合,还需要重写hashCode方法:如下以User为例子: public class User{private Integer id;p ...

  9. python两个list取交集_使用 Python 获取两个列表的交集、并集、差集的常用方法 | Jin''''s Blog...

    在数据处理中经常需要使用 Python 来获取两个列表的交集,并集和差集.在 Python 中实现的方法有很多,我平时只使用一两种我所熟悉的,但效率不一定最高,也不一定最优美,所以这次想把常用的方法都 ...

最新文章

  1. html页面引入另一个html页面
  2. linux c 通过 /proc 获取 pid 进程 列表
  3. (J2EE学习笔记)解决Hibernate删除异常:deleted object would be re-saved by cascade
  4. SVN基本的理解和使用
  5. C++ 虚函数经典深入解析
  6. mysql中的锁的指令_mysql中的锁
  7. 工业大数据分析综述:模型与算法
  8. 高斯消元(二)——竞赛题目中异或和的高斯消元
  9. [转】Python--遍历列表时删除元素的正确做法
  10. 学 Win32 汇编[27] - 乘除指令: MUL、IMUL、DIV、IDIV
  11. 用winformz时间格式不正确_煮八爪鱼,有人用冷水,有人用开水,大厨:都不对,教你正确做法...
  12. PHP 开源搜索引擎Yioop! 0.80 发布
  13. cad 打开硬件加速卡_CAD:“你的图纸缺少shx字体!”不知道该怎么办?不存在的!...
  14. OpenGL学习笔记:GLAD和第一个窗口
  15. 命令启动oracle实例,【单选题】启动oracle数据库实例的命令是
  16. 支撑起SNS的六度分隔理论和150法则
  17. 手把手教你---猿如意之八大高效利器使用
  18. 业余草网站热门关键字
  19. MATLAB代码:基于多目标遗传算法的分布式电源选址定容研究
  20. JSP用户登录连接数据库

热门文章

  1. MySQL(9)主从复制与读写分离
  2. Linux 查询 OS、CPU、内存、硬盘信息
  3. ln -s命令 linux,linux ln命令详解
  4. java获取当前时间戳_Java DateTime 获得当前 Unix 的时间戳
  5. std::string 收缩到合适大小_如何选择合适的自动伸缩门尺寸-深圳自动伸缩门供应商...
  6. P1083 借教室(差分+二分)
  7. 叮咚!您收到一份2021知位停车新品发布会暨合作伙伴大会邀请函
  8. 首个进入Gartner领导者象限的中国数据库要开发布会了!
  9. 蚂蚁王益:Go+ 可有效补全 Python 的不足
  10. 从零开始入门 K8s:深入剖析 Linux 容器