코딩을 하다보면 두개의 배열이나 오브젝트를 비교해서 없는 것만 찾아내야 하는 경우가 종종 생긴다.
이런 경우 반복문과 조건문을 사용하는 고전적인 방법과, 고차함수를 사용하는 비교적 최신 방법이 있다.
하지만 이런 비교하는 케이스에도 여러가지가 있다. 나는 그것을 다음과 같이 분류해서 설명하고자한다.
💡 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(['🍌', '🥝', '🍇'], ['🍌', '🍓', '🍇', '🍓']))
보다시피 고차함수를 사용한 것이 더 간결하고,
오타로 인한 오류의 가능성이 적음을 알 수 있다.
객체와 객체를 비교할 때는 다음과 같이 JSON.stringify을 이용하여, 객체를 문자열로 바꾼 양측을 비교한다.