본문 바로가기

코딩/Javascript

자바스크립트 - flat() 함수 사용법 (배열 속 중첩된 배열들의 요소를 부모 배열에 넣기)

반응형
const arr = [1, [2]];

기본적으로 위와 같이, 배열 속에 배열이 있을 수 있다.

 

 

const arr = [1, [2, [3]]];

그리고 위와 같이 배열 속에 배열이 그리고 그 속에 있는 배열 속에 배열이, 이렇게 많이 중첩될 수도 있다.

 

 

 

flat() 함수를 이용하면, 배열 속 배열들을 평탄화할 수 있다.

평탄화란, 상위 배열 속에 배열들을 없애고 없앤 배열들의 요소들만 상위 배열에 남게 할 수 있다.

예: [1, [2, 3]] 이란 배열을 한 번 평탄화하면, 한 번 중첩된 [2, 3] 배열을 없애고, 그 대신 없앤 배열의 요소들을 상위 배열에 삽입한다.

 

평탄화 전: [1, [2, 3]]

평탄화 후: [1, 2, 3]

 

 

2번 중첩된 배열에 평탄화 시.

평탄화 전: [1, [2, [3]]

평탄화 후: [1, 2, [3]]

 

자세한 정보 - https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/flat

 

 

예제: 중첩된 배열에, flat() 사용 시.

const arrOne = [1, [2]];

console.log(arrOne.flat()); // [1, 2]


const arrTwo = [1, [2, [3]]];

console.log(arrTwo.flat()); [1, 2, [3]] // [1, 2, [3]]

flat() 함수는 부모 배열 속 모든 배열을 대상으로 중첩을 한 번 평탄화한다.

arrTwo 배열 속 요소 3이 속한 배열은 2번 중첩되어 있어 flat() 함수 호출 후에도 부모 배열에서 한 번 중첩된 모습이다.

 

 

 

예제: N번 중첩된 배열까지 배열 해제하기.

const arr = [1, [2, [3]]];

console.log(arr.flat(2)); // [1, 2, 3]

최대 2번 중첩된 배열들을 평탄화한 모습.

 

 

 

예제: 중첩된 배열이 없을 때까지 평탄화하기.

const arr = [1, [2, [3, [4]]]];

console.log(arr.flat(Infinity)); // [1, 2, 3]

만약 중첩된 배열들의 깊이를 모르지만 중첩된 배열이 없을 때까지 평탄화하고 싶으면,

flat() 함수 호출 시, Infinity를 인수로 사용하면 된다.

반응형