我一直在寻找(更好)的方法来做到以下几点。取两个数组并仅返回唯一值。例如。 [' value1',' value2']和[' value2',' value3']应返回' value1'和' value3'。以下似乎有效,但我想知道是否有更简单/更简洁的方法来实现相同的结果。
function diffArray(arr1, arr2) {
var newArr = arr1.filter(function(a) {
var count = 0;
arr2.forEach(function (x) {
if (x === a) {count++;}
});
if (count !== 0) {return false;}
return true;
}).concat(arr2.filter(function(b) {
var count = 0;
arr1.forEach(function(y) {
if (y === b) {count++;}
});
if (count !== 0) {return false;}
return true;
}));
return newArr;
}
console.log(diffArray([1, 2, 3, 5], [1, 2, 3, 4, 5]));
//Should return only 4.
答案 0 :(得分:1)
答案 1 :(得分:1)
Th0rndike的答案的固定版本:
var a1=[1,2];
var a2=[2,3];
function diffArray(a1,a2){
return a2.filter(function(item){
return a1.indexOf(item) < 0;
}).concat(a1.filter(function(item){
return a2.indexOf(item) < 0;
}));
}
console.log(diffArray(a1,a2));
&#13;