[JS] Nested Array를 Flat Array로 바꾸는 법

poburi·2020년 10월 18일
0

js

목록 보기
7/7

Array.prototype.flat()

flat() 메서드는 모든 하위 배열 요소를 지정한 깊이까지 재귀적으로 이어붙인 새로운 배열을 생성한다.

const newArr = arr.flat([depth]);

매개변수

  • depth: 중첩 배열 구조를 평탄화할 때 사용할 깊이 값. 기본값은 1.

반환값

하위 배열을 이어붙인 새로운 배열

예제

  • 중첩 배열 평탄화:
const arr1=[1,2,[3,4]];
arr1.flat();
// [1,2,3,4]

const arr2=[1,2,[3,4,[5,6]]];
arr2.flat();
// [1,2,3,4,[5,6]]

const arr3=[1,2,[3,4,[5,6]]];
arr3.flat(2);
// [1,2,3,4,5,6]

const arr4=[1,2,[3,4,[5,6[7,8,[9,10]]]]];
arr4.flat(Infinity);
// [1,2,3,4,5,6,7,8,9,10]
  • 배열 구멍 제거:
const arr5=[1,2,,4,5];
arr5.flat();
//[1,2,4,5]

대안

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

// To flat signle level array
arr.flat();
// is equivalent to
arr.reduce((arr, val)=> acc.concat(val), []);
// [1,2,3,4]

// or with decomposition syntax
const flattened = arr => [].concat(...arr);

아쉬운 점

인터넷 익스프로어에는 지원이 되지 않아서 reduce, concat과 같은 대안도 생각해놔야한다.

참고

profile
FE 개발자 poburi

0개의 댓글