我有两个数组
var a = [4,8,9,7];
var b = [1,5,7,3,9];
我想要结果
[4,8,1,5,3]
我尝试使用过滤器-
function diffArray(arr1, arr2) {
var newArr = [];
var newArr2 = [];
newArr = arr1.filter(function(e) {
return arr2.indexOf(e) < 0;
});
newArr2 = arr2.filter(function(e) {
return arr1.indexOf(e) < 0;
});
var arr = newArr.concat(newArr2);
return arr;
}
有没有更好的方法来获得相同的结果。
最佳答案
您可以检查项目的索引和最后一个索引,并仅在索引相同时进行过滤。
var a = [4, 8, 9, 7],
b = [1, 5, 7, 3, 9],
unique = a.concat(b).filter((v, _, a) => a.indexOf(v) === a.lastIndexOf(v));
console.log(unique);