flat()
은 배열의 차원을 한 단계 낮추는 메서드로, n차원 배열을 n-1차원 배열로 낮춥니다.
이차원 배열이라면 일차원 배열으로 바뀝니다. 일차원 배열은 flat()
적용해도 그대로 일차원 배열이 됩니다.
** 단점 : 속도가 느리다.
const array1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
array1.flat(); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
const array2 = [1, 2, 3, [[4, 5, 6], [7, 8, 9]]];
array2.flat(); // [1, 2, 3, [4, 5, 6], [7, 8, 9]]
const array3 = [1, 2, [3, [[4, 5, 6], [7, 8, 9]]]];
array3.flat(); // [1, 2, 3, [[4, 5, 6], [7, 8, 9]]]
배열을 평탄화할 때 기본 깊이 값은 n-1
이며, 지정할 수도 있습니다.
const array3 = [1, 2, [3, [[4, 5, 6], [7, 8, 9]]]];
array3.flat(); // [1, 2, 3, [[4, 5, 6], [7, 8, 9]]]
array3.flat(1); // [1, 2, 3, [[4, 5, 6], [7, 8, 9]]]
array3.flat(2); // [1, 2, 3, [4, 5, 6], [7, 8, 9]]
array3.flat(3); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
배열 사이에 빈 요소가 있을 경우 flat()
을 사용하면 간단하게 제거할 수 있습니다.
const array = [1, 2, 3, , 5];
array.flat(); // [1, 2, 3, 5]