두 배열에서 서로 겹치는 요소들 삭제하는 여러방법. (JS)

KIMMY·2020년 7월 3일
0

두 배열이 있다.

let lost = [2, 3, 4];
let reserve = [1, 2, 3, 6];

난 이 배열에서 서로 겹치는 것들을 없애고 싶다. (아래처럼)

lost = [4];
reserve = [1,6];

그리하여 함수를 만들었다. (이게 best는 아닐 텐데 ㅠ-ㅠ)

  1. filter 와 includes를 사용
let array1 = [2, 3, 4];
let array2 = [1, 2, 3, 6];
const filteredArray2 = array2.filter(number => !array1.includes(number));
const filteredArray1 = array1.filter(number => !array2.includes(number));
  1. filter 와 find 사용
let lost = [2, 3, 4];
let reserve = [1, 2, 3, 6];
let lostData = lost;
let reserveData = reserve;
function removeSameNum(ArrToCheck, ArrToCompare) {
  ArrToCheck = ArrToCheck.filter(r => {
    let b = ArrToCompare.find(e => e === r);
    if (b) return false;
    return true;
  });
  return ArrToCheck;
}
lost = removeSameNum(lost, reserveData);   // lost = [4]
reserve = removeSameNum(reserve, lostData); // reserve = [1,6]

그냥 includes 쓰는게 베스트 인거 같다!

profile
SO HUMAN

0개의 댓글