最近看到一个题目:比较两个数组,返回一个新的数组。这个新数组需要包含传入的两个数组所有元素中,仅在其中一个数组里出现的元素。如果某个元素同时出现在两个数组中,则不应包含在返回的数组里。换言之,我们需要返回这两个数组的对称差。
在经过一通思考后,鄙人只想出了如下方法:
function diffArray(arr1, arr2) {
var newArr = [];
// 这是一个党异伐同的过程
var concatArr = [...arr1, ...arr2];
newArr = concatArr.filter(item => {
return !(arr1.includes(item) && arr2.includes(item));
})
return newArr;
}
如果哪个大佬有什么更好的方法,希望能指教一二啊!