我有两个数组

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);

09-10 10:20
查看更多