JS 查找两个数组中的不同或相同元素

458 阅读1分钟
1. 查找两数组中不同元素
let arr1 = [1,2,3,4,5];
let arr2 = [0,2,3,4,6];
function getDifArr(arr1,arr2) {
  let arr = [...arr1, ...arr2];
  return arr.filter(item => !(arr1.includes(item) && arr2.includes(item)));
}
getDifArr(arr1,arr2) // [1, 5, 0, 6]

let arr1 = [0,1,2,3,4,5];
let arr2 = [0,4,6,1,3,9];
function getDifArr(arr1, arr2) {
      return arr1.concat(arr2).filter(function(v, i, arr) {
            return arr.indexOf(v) === arr.lastIndexOf(v);
        });
    }
getDifArr(arr1,arr2); // [2, 5, 6, 9]

2. 查找两数组中相同元素
function getSameArr(arr1, arr2) {
     return [...new Set(arr1)].filter(item => arr2.includes(item));
   }
function getSameArr(arr1, arr2) {
    return [...new Set(arr1)].filter(item => arr2.indexOf(item) !== -1);
  }
function getSameArr(arr1, arr2) {
        let newArr = [];
        for (let i = 0; i < arr2.length; i++) {
          for (let j = 0; j < arr1.length; j++) {
            if (arr1[j] === arr2[i]) {
              newArr.push(arr1[j]);
            }
          }
        }
        return newArr;
      }
let arr1 = [1, 2, 3, 3, 4, 5],
    arr2 = [2, 3, 4, 5, 6];
  
getSameArr(arr1, arr2); // [2, 3, 4, 5]