Javascript로 다차원 배열 평면화

문제



다차원 배열이 있고 이를 단일 배열로 병합하려고 합니다.

const arr = [[1, 2], [3, 4], [5, 6, [7, 8, [9, 10]]]];


해결책



여기서는 Array.prototype.reduce() 메서드를 사용하여 배열을 평면화합니다. Array.isArray() 메서드를 사용하여 현재 요소가 배열인지 확인합니다. 그렇다면 재귀적으로 flatten() 함수를 호출하고 결과를 누산기에 연결합니다. 그렇지 않은 경우 단순히 요소를 누산기에 연결합니다.

const flatten = arr => arr.reduce((acc, val) => Array.isArray(val) ? acc.concat(flatten(val)) : acc.concat(val), []);


용법




flatten(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


참조


  • Array.prototype.reduce()
  • Array.prototype.concat()
  • 좋은 웹페이지 즐겨찾기