flatten, unflatten

wony·2022년 4월 19일
0

flatten

flattend의 사전적의미는 평평하게라는 뜻이다

js에서의 flatten은 이중배열, 이중객체 등 깊이가 있는 배열을 깊이가 없도록 펼쳐서 평평한 형태로 보여주는 기능이다

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]

출처- https://www.npmjs.com/package/arr-flatten-unflatten

npm에서 설치해서 사용할 수도 있고 js에서 내장되어있는 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]

flat 메서드는 배열의 구멍도 제거합니다

const arr5 = [1, 2, , 4, 5];
arr5.flat();
// [1, 2, 4, 5]

출처-https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/flat

profile
무럭무럭 성장중🌿

0개의 댓글