JS:对等差分

来源:互联网 发布:好看的网络剧 编辑:程序博客网 时间:2024/05/17 06:44

给出两个集合(如集合A = {1, 2, 3}和集合B = {2, 3, 4})),而数学术语“对等差分”的集合就是指由所有只在两个集合其中之一的元素组成的集合(A △ B = C = {1, 4})。对于传入的额外集合(如D = {2, 3}),你应该安装前面原则求前两个集合的结果与新集合的对等差分集合(C △ D = {1, 4} △ {2, 3} = {1, 2, 3, 4})。

function sym() {  //不造有几个参数,所以就先轮出来  var args = [];  for(var i=0;i<arguments.length;i++){    args.push(arguments[i]);  }  //函数:你没有的,result没有的,都插入result  function diff(aOne,aTwo){    var result = [];    aOne.forEach(function(i){      if(aTwo.indexOf(i)<0&&result.indexOf(i)<0){        result.push(i);      }    });    aTwo.forEach(function(i){      if(aOne.indexOf(i)<0&&result.indexOf(i)<0){        result.push(i);      }    });    return result;  }  //reduce该数组,并排序  return args.reduce(diff).sort();}
sym([3, 3, 3, 2, 5], [2, 1, 5, 7], [3, 4, 6, 6], [1, 2, 3], [5, 3, 9, 8], [1]);//[ 1, 2, 4, 5, 6, 7, 8, 9 ]
0 0
原创粉丝点击