JavaScript

22.05.09 map 의 결과가 undefined 일 경우 skip

슈팅스타제제 2022. 5. 10. 14:03

map 을 돌릴 때 undefined 인 결과는 skip 하고 싶다고 할 때,

 

다음과 같은 배열이 있다. 

const array = [1, 2, 3, 4, 5]

 

나는 홀수만 남기고 싶어서 map을 사용하여 

array.map(item => {
  if((item%2)){
    return item
  }
})

 

undefined 제거하고 싶으면 그냥 뒤에 filter 붙이면 된다. 

array.map(item => {
  if((item%2)){
    return item
  }
}).filter(element => element)

 

사실 위와 같이 간단한 경우는 굳이 map 을 사용하지 않고 filter 하나만 사용하면 정제가 가능하다. 

array.filter(item => item%2)

 

하지만 객체 속성의 값에 대한 비교와 정제를 할 경우, 객체의 key 를 배열로 만들고 필수적으로 map 을 사용해야 한다. 

왜냐하면 바로 filter 를 사용할 경우, 객체의 속성 값을 return 하고 싶지만, 객체의 key 만 반환하기 때문이다.