배열 평탄화를 위한 함수 flat(), flatMap()

두 함수 모두 ECMAScript 2019 (ES10)에 새롭게 추가된 함수.

 

flat(x) 함수는 중첩된 배열을 x 깊이만큼 평탄화시키는 함수이다.

const fruits = ['apple', ['banana', 'orange', ['melon']]] 일 때,

console.log(fruits.flat(1)); 의 경우

['apple', 'banana', 'orange', ['melon']] 가 출력된다.

console.log(fruits.flat(2)); 의 경우

['apple', 'banana', 'orange', 'melon'] 가 출력된다.

console.log(fruits.flat(Infinity)); 를 통해 모든 중첩 배열을 최대한 평탄화시킬 수도 있다.

 

flatMap() 함수는 flat() 함수와 map() 함수를 합친 함수이다.

다만 flatMap()은 flat() 함수와는 달리 평탄화 가능한 깊이가 1로 고정된다는 특징이 있다.

const children = [[1], [2], [3], [4]] 일 때

각 요소들에 2를 곱하고 1만큼 평탄화시키고싶다 한다면

console.log(children.flatMap((x) => ([x*2])); 를 시행할 경우

[2, 4, 6, 8] 이 출력된다.

 

출처 : 링크