[ JS ] 배열과 배열, 객체와 객체 요소 비교 방법

방충림·2023년 3월 19일
3

Code Repository

목록 보기
3/8
post-thumbnail

코딩을 하다보면 두개의 배열이나 오브젝트를 비교해서 없는 것만 찾아내야 하는 경우가 종종 생긴다.
이런 경우 반복문과 조건문을 사용하는 고전적인 방법과, 고차함수를 사용하는 비교적 최신 방법이 있다.

하지만 이런 비교하는 케이스에도 여러가지가 있다. 나는 그것을 다음과 같이 분류해서 설명하고자한다.

1. 배열과 배열의 비교

1) 배열에 원시값이 들어있는 경우

💡 Quiz 배열1, 배열2 두개의 배열을 전달받아, 배열1 아이템중 배열2에 존재하는 아이템만 담고 있는 배열 반환하라.
input: ['🍌', '🥝', '🍇'], ['🍌', '🍓', '🍇', '🍓']
output: [ '🍌', '🍇' ]


반복문 사용시

function match(input, search) {
  const result = [];
  for (let i = 0; i < input.length; i++) {
    if (search.includes(input[i])) {
      result.push(input[i]);
    }
  }
  return result;
}
console.log(match(['🍌', '🥝', '🍇'], ['🍌', '🍓', '🍇', '🍓']));

고차함수 사용시

function match(input, search) {
  return input.filter((item) => search.includes(item));
}
console.log(match(['🍌', '🥝', '🍇'], ['🍌', '🍓', '🍇', '🍓']))

보다시피 고차함수를 사용한 것이 더 간결하고,
오타로 인한 오류의 가능성이 적음을 알 수 있다.

2) 배열에 배열이 들어있는 경우(중첩)

  • 추후 추가 예정

3) 배열에 객체가 들어있는 경우(중첩) - JSON 형태

  • 추후 추가 예정

2. 객체와 객체의 비교

객체와 객체를 비교할 때는 다음과 같이 JSON.stringify을 이용하여, 객체를 문자열로 바꾼 양측을 비교한다.

profile
최선이 반복되면 최고가 된다.

0개의 댓글