Symmetric Difference

function sym(args) {
  //return args;
   var arr = [];
  for(var i = 0; i < arguments.length; i++){
    arr.push(arguments[i]);
  }
  var temp = arr.reduce(function(prev,cur,index,array){
    var a = prev.filter(function(item){
      return cur.indexOf(item) < 0;
    });
    var b = cur.filter(function(item){
      return prev.indexOf(item) < 0;
    });
    return a.concat(b);
  });
  return temp.filter(function(item,index,array){
    return array.indexOf(item) == index;
  });
  //或者调用外部函数去重;function unique(array)见“思路”部分
  //return unique(temp);
}

sym([1, 2, 3], [5, 2, 1, 4]);

  

原文地址:https://www.cnblogs.com/mengruying/p/6213979.html