我做了一个函数来计算作为参数传递的数组之间的de对称差异。我做了两个数组,它的工作。现在的问题是我想将函数扩展到n个变量。我认为如果函数的arguments.length等于2,我应该计算symm差异,否则我应该调用递归函数来计算其他元素和前两个元素之间的symm差异?我不知道,我很困惑。对称差异的递归函数
function sym(args) {
var arr=[].slice.call(arguments);
var cnts={};
var result=[];
if(arguments.length==2){
arr=arguments[0].concat(arguments[1]);
console.log(arr);
for(var number in arr){
if(cnts.hasOwnProperty(arr[number])){
++cnts[arr[number]].cnt;
}
else cnts[arr[number]]={cnt:1,val:arr[number]};
}
for(var counts in cnts){
if(cnts[counts].cnt===1) result.push(cnts[counts].val);
}
}
else{
var first=arguments[0];
var nextDiff=function(next){
return ...........?????????;
};
}
return result;
}
sym([1, 2, 5], [2, 3, 5], [3, 4, 5]);
[试图解决使用Javascript对称差(的可能的复制http://stackoverflow.com/questions/30834946/trying-to-solve-symmetric-difference-using-javascript ) –