数组的交差并&去重

  1. 数组去重
function array_remove_repeat(arr) { // 去重
    var result = new Array();
    arr.forEach(function(value){
      if(result.indexOf(value)==-1) result.push(value);
    });
    return result;
}
  1. 数组交集
function array_intersection(arrA, arrB) { // 交集
    var result = new Array();
    arrA=array_remove_repeat(arrA);
    arrB=array_remove_repeat(arrB);
    arrA.forEach(function(value){
      if(arrB.indexOf(value)>=0) result.push(value);
    });
    return result;
}
  1. 数组并集
function array_union(arrA, arrB) { // 并集
    var result = new Array();
    arrA=array_remove_repeat(arrA);
    arrB=array_remove_repeat(arrB);
    result = arrB.slice();
    arrA.forEach(function(value){
      if(arrB.indexOf(value)==-1) result.push(value);
    });
    return result;
}
或
    function array_union(a, b) { // 并集
      return array_remove_repeat(a.concat(b));
  }
  1. 数组差集
function array_difference(arrA, arrB) { // 差集
    var result = new Array();
    arrA=array_remove_repeat(arrA);
    arrB=array_remove_repeat(arrB);
    arrA.forEach(function(value){
      if(arrB.indexOf(value)==-1) result.push(value);
    });
    return result;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容