JavaScript

22.05.09 배열 평탄화 flatMap

슈팅스타제제 2022. 5. 9. 15:19

map을 무작정 돌리면 안좋은 점이 배열 안에 불필요하게 감싸는 배열이 생길 수 있다는 점이다. 

복잡한 객체를 원하는 간단한 배열로 바꿀 때 여러 메소드들이 필요하다. 

그 중 flatMap 이라는 메소드는 현재 실험 단계의 js 메소드이다. 작동 방식은 reduce 와 concat 을 함께 쓴 것과 똑같이 작동한다. 

let arr1 = ["it's Sunny in", "", "California"]

다음과 같은 배열에서 띄어쓰기를 기준으로 단어를 나누고 싶을 때,

arr1.map(x=>x.split(" "))

그냥 map 을 돌리면 각각 요소에 대한 배열을 큰 배열이 감싸져 있는 형태로 반환된다. 

 

arr2.flatMap(x => x.split(" "))

flatMap 을 돌리면 필요없는 큰 배열과 각각의 문자열을 감싸고 있는 배열이 사라지고 각 문자열 요소에 대한 최상단 배열만 남아있게 된다.