数组的 交集 差集 补集 并集

ES5的写法

var a = [1,2,3,4,5]

var b = [2,4,6,8,10]


// //交集

var c = a.filter(function(v){ return b.indexOf(v) > -1 })

// //差集

var d = a.filter(function(v){ return b.indexOf(v) == -1 })

// //补集

var e = a.filter(function(v){ return !(b.indexOf(v) > -1) })

.concat(b.filter(function(v){ return !(a.indexOf(v) > -1)}))

//并集

var f = a.concat(b.filter(function(v){ return !(a.indexOf(v) > -1)}));

console.log("数组a:", a);

console.log("数组b:", b);

console.log("a与b的交集:", c);

console.log("a与b的差集:", d);

console.log("a与b的补集:", e);

console.log("a与b的并集:", f);

用ES6 的写法

var a = [1,2,3,4,5]
var b = [2,4,6,8,10]
console.log("数组a:", a);
console.log("数组b:", b);
var sa = new Set(a);
var sb = new Set(b);
// 交集
let intersect = a.filter(x => sb.has(x));
// 差集
let minus = a.filter(x => !sb.has(x));
// 补集
let complement = [...a.filter(x => !sb.has(x)), ...b.filter(x => !sa.has(x))];
// 并集
let unionSet = Array.from(new Set([...a, ...b]));
console.log("a与b的交集:", intersect);
console.log("a与b的差集:", minus);
console.log("a与b的补集:", complement);
console.log("a与b的并集:", unionSet);

  

原文地址:https://www.cnblogs.com/buxiugangzi/p/11563488.html

时间: 2024-11-09 00:45:52

数组的 交集 差集 补集 并集的相关文章

数组功能扩展--差集,并集,合集,去重

//数组功能扩展 Array.prototype.each = function(fn){       fn = fn || Function.K;        var a = [];        var args = Array.prototype.slice.call(arguments, 1);        for(var i = 0; i < this.length; i++){            var res = fn.apply(this,[this[i],i].conc

js取两个数组的交集|差集|并集|补集|去重示例代码

http://www.jb51.net/article/40385.htm 代码如下: /** * each是一个集合迭代函数,它接受一个函数作为参数和一组可选的参数 * 这个迭代函数依次将集合的每一个元素和可选参数用函数进行计算,并将计算得的结果集返回 {%example <script> var a = [1,2,3,4].each(function(x){return x > 2 ? x : null}); var b = [1,2,3,4].each(function(x){re

JS - 计算两个数组的交集、差集、并集、补集(多种实现方式)

方法一:最普遍的做法 使用 ES5 语法来实现虽然会麻烦些,但兼容性最好,不用考虑浏览器 JavaScript 版本.也不用引入其他第三方库. 1,直接使用 filter.concat 来计算 var a = [1,2,3,4,5] var b = [2,4,6,8,10] //交集 var c = a.filter(function(v){ return b.indexOf(v) > -1 }) //差集 var d = a.filter(function(v){ return b.index

golang 数组之间的交集,差集,并集,补集

今天公司需求两个数组之间的差集,类库下不下来,就独立出来了一份,希望读者有用 package model import ( "sort" "sync" ) type Set struct { sync.RWMutex m map[int]bool } // 新建集合对象 func New(items ...int) *Set { s := &Set{ m: make(map[int]bool, len(items)), } s.Add(items...) r

Perl 数组 交集,补集,并集

my @a=("a","b","c","d","e"); my @b=("b","g","f","e"); my %a=map{$_=>1} @a; my %b=map{$_=>1} @b; # 交集 @A = grep( $a{$_}, @b ) ; # 补集 @B1=grep(!defined $a{$_}, @

JAVA获取两个数据量较大的ArrayList的交集、差集以及并集

测试说明:获取firstArrayList和secondArrayList的交集.差集以及并集.实际测试中firstArrayList数据量190000,secondArrayList数据量170000.效率比较高.此处只列出少量数据.测试代码如下: import java.util.Set; import java.util.List; import java.util.HashSet; import java.util.TreeSet; import java.util.Iterator;

jquery 数组求差集,并集

var alpha = [1, 2, 3, 4, 5, 6], beta = [4, 5, 6, 7, 8, 9]; $.arrayIntersect = function(a, b){ return $.merge($.grep(a, function(i) { return $.inArray(i, b) == -1; }) , $.grep(b, function(i) { return $.inArray(i, a) == -1; }) );}; window.console &&

PHP 数组函数 数组中的差集和交集

array_diff( $arr , $arr2[--] )  返回一个数组,该数组包括了所有在$arr1 但是不在任何其他参数数组中的值,键名不变 array_diff_uassoc( $arr ,$arr2 ,[--] , 'cmp_function') 用回调函数做索引比较数组中的差集 array_diff_assoc( $arr , $arr2[--] ) 返回一个数组,$arr 与其他数组的差集 同时比较键名  索引不变 array_udiff( $arr , $arr2 [--] ,

072-PHP数组的交集和差集

<?php $arr1=array(1,3,4,5,34,78,99); //参加第一项竞赛的学生学号数组 $arr2=array(5,6,7,3,56,34,8,9); //参加第二项竞赛的学生学号数组 $arr=array_intersect($arr1,$arr2); //获取两个数组的交集 echo '两项竞赛均参加的学生学号有:<br />'; print_r($arr); //输出数组的详细信息 $arr=array_diff($arr1,$arr2); //获取相对数组$a