(Javascript) flatten, unflatten

임동현·2022년 4월 22일
0

JavaScript flat() 함수는 Array 배열 구조안에 또 다른 Array를 값을 가질때 이 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]

javascript

만약 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,]]

javascript

이 때에는 flat() 의 인자값으로 2을 넣게 되면 모든 배열 Array가 평평하게 만들어 집니다.

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

Javascript
위와 같은 앞에 속한 Array 의 하위 차수 만큼 속한 모든 배열 Array 를 평평하게 만드려면 flat 의 인자값을 하위 차수 만큼 지정해서 넘겨주면 모든 배열을 평평하게 만들수 있습니다 .

또한 flat() 함수는 다음과 같이 배열의 빈값을 없애주는 기능도 수행합니다 .

var array1 = [1,2,3,,5,6]
array1.flat() ;
// [1,2,3,5,6]

Javascript

Javascript Unflatten

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]

npm 에서 설치해서 사용할 수도 있고 js 에서 내장되어 있는 flat() 의 기능을 이용할 수도 있다.

profile
프론트엔드 공부중

0개의 댓글