flat 메서드
const newArr = arr.flat([depth])
flat 메서드는 모든 배열 요소를 지정한 깊이까지 이어 붙인 새로운 배열을 생성하는 메서드입니다.
빈 요소가 있으면 무시하며 depth에 따라 합치는 정도를 정할 수도 있습니다. (기본은 1입니다.)
[1, 2, [3, 4]].flat();
// [1, 2, 3, 4]
[1, 2, [3, 4, [5, 6]]].flat();
// [1, 2, 3, 4, [5, 6]]
[1, 2, [3, 4, [5, 6]]].flat(2);
// [1, 2, 3, 4, 5, 6]
[1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]].flat(Infinity);
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
어디서 사용하나요?
다중 배열을 평탄하게 합쳐야할 경우가 존재합니다.
const arr = [1, 1, [1], [1, 1]];
const sum1 = arr.reduce((acc, v) => acc + v, 0);
// '211,1'
const sum2 = arr.flat().reduce((acc, v) => acc + v, 0);
// 5