比较朴实的算法...,思路就是先对两个数组去重——>求交集——>求并集——>并集减交集,代码如下:
function newarr(arr,brr) {
//去掉两个数组中各自重复的部分
function unique (crr) {
let brr =[];
for (let i=0; i
if (brr.indexOf(crr[i]) < 0) {
brr.push(crr[i]);
}
}
return brr;
}
//去重后的两个新数组
let purearr = unique(arr),
purebrr = unique(brr);
let sum=[],
intersection=[];
//求两个已去重数组的交集
function same(arr,brr) {
let samearr = [];
for (let i=0; i
let temp = arr[i];
for (let j=0; j
if (brr[j] === temp) {
samearr.push(brr[j]);
}
}
}
return samearr;
}
intersection=same(purearr,purebrr);
//求两个已经各自去重的数组的并集
function add (arr,brr) {
for (let i=0; i < arr.length; i++) {
let temp = arr[i];
for (let j=0; j
if (purebrr[j] === temp) {
purebrr.splice(j,1);
}
}
}
return arr.concat(brr);
}
sum = add(purearr,purebrr)
//对并集的数组去掉交集的元素
for (let i=0; i
let temp=intersection[i];
for (let j=0; j
if (sum[j] === temp) {
sum.splice(j,1);
}
}
}
return sum;
}