반응형
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를 인수로 사용하면 된다.
반응형
'코딩 > Javascript' 카테고리의 다른 글
자바스크립트 - 2진법, 8진법, 16진법 숫자를 간단하게 10진법으로 변환하기 (0) | 2023.12.12 |
---|---|
자바스크립트 - flatMap() 함수 사용법 (flat() 함수와 map() 함수를 합친 함수) (0) | 2023.09.16 |
자바스크립트 - findLastIndex() 함수 사용법 (배열에서 특정 요소의 인덱스 찾기) (0) | 2023.09.10 |
자바스크립트 - 배열의 뒤부터 시작으로 특정 요소를 찾아 반환하기 (findLast() 함수) (0) | 2023.09.07 |
자바스크립트 - 배열의 특정 요소를 찾아 그 요소의 인덱스 반환하기 (findIndex() 함수) (0) | 2023.07.25 |