flatten, unflatten

송인호·2022년 6월 27일
0

React

목록 보기
26/70
  1. unflatten, flatten

unflatten

자바스크립트에서 unflatten은 다음과 같은 중첩된 배열을 의미한다.

[1, [2, [3, [4]]]]

flatten

flatten은 다음과 같이 중첩이 없는 배열을 의미한다.
혹은 중첩배열을 평탄화 하는 작업을 의미한다.

[1, 2, 3, 4, 5]

flat()메서드

flat 메서드는 인수로 전달한 깊이만큼 재귀적으로 배열을 평탄화 한다.
쉽게 이해해보자.
다음과 같은 배열이 있다.

[1, [2, [3, [4]]]]

여기서 배열을 평탄화 하는 작업은
배열의 벽[]을 부수는 작업이라 보면된다.

위에서 제시한 배열은 벽이 다음과같이

1, [ 2, [ 3, [ 4 ] ] ]

3개있다.

여기서 아래와 같이 flat 메서드를 사용해
벽을 부수는 예시를 보자.

[1, [2, 3, 4, 5]].flat() // -> [1, 2, 3, 4, 5]

일단 flat.()메서드에서 인수를 생략할 경우
1개의 벽만 부순다.
즉 인수의 기본값은 1이다.

다음은 인수에 따라 얼마나 평탄화 하는지 알 수 있는 예시이다.

// 중첩 배열을 평탄화하기 위한 깊이 값의 기본값은 1이다.

[1, [2, [3, [4]]]].flat() // -> [1, 2, [3, [4]]]
[1, [2, [3, [4]]]].flat(1) // -> [1, 2, [3, [4]]]
[1, [2, [3, [4]]]].flat(2) // -> [1, 2, 3, [4]]
[1, [2, [3, [4]]]].flat().flat() // -> [1, 2, 3, [4]]
[1, [2, [3, [4]]]].flat(Infinity) // -> [1, 2, 3, 4]

인수로 Infinity를 전달하면 모든 벽을 부순다.
(중첩 배열을 모두 평탄화한다)

또한 flat() 메서드는 다음과 같은 공백도 제거한다.

const arr5 = [1, 2, , 4, 5];
arr5.flat();
// [1, 2, 4, 5]

출처

profile
프론트엔드 개발자

0개의 댓글