资讯专栏INFORMATION COLUMN

总结了一下js中的差集、交集、并集

freecode / 313人阅读

摘要:前言总结了一下有关于数组的差集交集并集的方法的方法实现去重简单的数组去重请传入数组类型并集简单数组的并集交集简单数组的交集差集简单数组的差集的方法实现去重简单的数组去重请传入数组类型交集简单数组的交集请都传入数组类型并集简单数组的并集请都传

前言

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

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
并集
/**
 * 简单数组的并集
 */
var getUnion = function(){
    var arr = new Array();
    var obj = new Object();
    var arguLen = arguments.length;
    for(var i = 0; i
差集
/**
 * 简单数组的差集
 */
var getDifference = function(){
    var arr = new Array();
    var obj = new Object();
    var arguLen = arguments.length;
    for(var i = 0; i           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94219.html

相关文章

  • JS数组交集 并集 差集

    摘要:同样的,由于下面会用到的方法,低版本会存在兼容,先应添加对应的依赖数组去重方法数组去重交集交集元素由既属于集合又属于集合的元素组成使用方式并集并集元素由集合和集合中所有元素去重组成使用方式差集的差集属于集合不属于集合的元素的差集属于集合 同样的,由于下面会用到ES5的方法,低版本会存在兼容,先应添加对应的polyfill Array.prototype.indexOf = Array....

    booster 评论0 收藏0
  • js ES6 求数组的交集并集,还有差集

    摘要:最近在看阮一峰老师的入门在看到数据结构实现数组的交集,并集还有差集,但是阮一峰老师实现差集貌似有点问题,特地来做下笔记并集交集差集最后这条代码才能求到正确的差集原文地址 最近在看阮一峰老师的《ES6 入门》 在看到Set数据结构实现数组的交集,并集还有差集,但是阮一峰老师实现差集貌似有点问题,特地来做下笔记: const a = {fn: 1}; const set = new Set...

    Rocko 评论0 收藏0
  • python 求两个list的差集并集交集

    摘要:比如,现在有两个类型一差集很明显结果是,下面我们说一下具体方法。方法正常法方法简化版方法高级版二并集很明显结果是下面是具体方法三交集很明显结果是,下面是具体方法 比如,现在有两个list类型: a_list = [1,2,3,4] b_list = [1,4,5] 一. 差集很明显结果是[2,3,5],下面我们说一下具体方法。方法a.正常法: ret_list = [] ...

    sanyang 评论0 收藏0
  • 学习JavaScript数据结构与算法(三):集合

    摘要:至于这三个的具体概念,可以看图中集合的实现首先,创建一个构造函数。前端路漫漫,且行且歌的前端乐园原文链接寒假前端学习学习数据结构与算法三集合 本系列的第一篇文章: 学习JavaScript数据结构与算法(一),栈与队列第二篇文章:学习JavaScript数据结构与算法(二):链表第三篇文章:学习JavaScript数据结构与算法(三):集合第四篇文章:学习JavaScript数据结构与...

    BDEEFE 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<