[알고리즘] filter 메서드

임수정·2023년 6월 19일
0
post-thumbnail

요즘 프로그래머스를 통해 코딩테스트 문제를 풀고있는데 풀면서 알게된 함수를 정리해보려고 합니다

filter

 Array.filter(callback(element[, index[, array]])[, thisArg])

filter 메서드는 직역을 통해서도 그 뜻을 추리해볼 수 있습니다. 말 그대로 어떤 값을 걸러주는 메서드로 볼 수 있는데요 정확한 filter 메서드의 정의는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다. Mdn filter

문제

문제로 들어가보면

프로그래머스 이어 붙인 수

배열안에있는 수 중 홀수와 짝수로 나누어 각각의 숫자를 이어 붙인 수 끼리 더한 값을 반환하는 문제입니다.

맨처음에는 map(),if()를 활용하여 문제를 해결하려고 했는데 코드도 길어지고 해결하면 해결할 수록 코드가 꼬이는 느낌이 들었습니다..(물론 제가 실력이 부족해서 지만..)

해결과정

const solution = num_list => {
  const odd = num_list.filter(x => x % 2 == 1).join("")
  const even = num_list.filter(y => y % 2 == 0).join("")

  return Number(odd) + Number(even)
}

저는 이렇게 filter 메서드를 활용해서 문제를 풀어봤습니다. 홀수와 짝수를 각각 다른변수로 선언하고 join()을 사용해서 배열의 모든 요소를 하나의 문자열로 이어 붙였습니다. 그리고 변수끼리 더한 값을 return을 해보니 타입이 string이여서 숫자 그대로가 이어지더라구요

ex) "359" + "26" = "35926"

그래서 Number()를 활용하여 숫자로 타입을 변경해주었더니 테스트에 통과했습니다!😆

profile
부족함을 인정하고 채워나가는 개발자! (Node.js 개발자)

0개의 댓글