array1 이라는 Array 에 [1,2,3[4,5,6]] 값이 있을 때, array1.flat() 을 실행시키면 , [1,2,3,4,5,6]을 반환합니다 .
var array1 = [1,2,3,4,5,6]
array1.flat();
//[1,2,3,4,5,6]
만약 Array 안의 Array 값에 또 다른 Array 가 존재할 경우 , flat()을 실행시키면 , 2번째 하위에 있는 Array 는 평평하게 되지 않습니다 .
예를 들어 array1 이라는 Array 에 [1,2,[3,4,[5,6,]]] 값이 있을때 , array1.flat()을 실행시키면 [1,2,3,4[5,6]] 을 반환합니다.
var array1 = [1,2,[3,4,[5,6,]]];
array1.flat();
// [1,2,3,4,[5,6,]]
이 때에는 flat() 의 인자값으로 2을 넣게 되면 모든 배열 Array가 평평하게 만들어 집니다.
var array1 = [1,2,[3,4,[5,6,]]];
array1.flat(2)
// [1,2,3,4,5,6]
위와 같은 앞에 속한 Array 의 하위 차수 만큼 속한 모든 배열 Array 를 평평하게 만드려면 flat 의 인자값을 하위 차수 만큼 지정해서 넘겨주면 모든 배열을 평평하게 만들수 있습니다 .
또한 flat() 함수는 다음과 같이 배열의 빈값을 없애주는 기능도 수행합니다 .
var array1 = [1,2,3,,5,6]
array1.flat() ;
// [1,2,3,5,6]
Javascript
unflatten 은 flatten 되어있는 배열이나 객체를 깊이가 있는 배열이나 객체로 만들어주는 기능이다.
const { flatten, unflatten } = require("arr-flatten-unflatten");
let flat = flatten([2, 4, [8, [2, [32, 64]], 7], 5]);
/**
* => {
* "[0]": 2,
* "[1]": 4,
* "[2][0]": 8,
* "[2][1][0]": 2,
* "[2][1][1][0]": 32,
* "[2][1][1][1]": 64,
* "[2][2]": 7,
* "[3]": 5
* }
* */
unflatten(flat);
// => [2, 4, [8, [2, [32, 64]], 7], 5]