💻 Dev

🛠️ 처음부터 만드는 Flatten — 중첩 배열을 평탄화하기

# 처음부터 만드는 Flatten
Flatten은 중첩된 배열을 펼쳐서 1차원 배열로 만드는 함수입니다.

기본 구현


```javascript
function flatten(arr) {
return arr.reduce((acc, val) => {
return acc.concat(Array.isArray(val) ? flatten(val) : val);
}, []);
}
flatten([1, [2, [3, [4]]]]);
// → [1, 2, 3, 4]
```

깊이 제어 버전


깊이를 지정해서 부분적으로만 펼칠 수 있습니다.
```javascript
function flattenDepth(arr, depth = 1) {
return arr.reduce((acc, val) => {
if (Array.isArray(val) && depth > 0) {
return acc.concat(flattenDepth(val, depth - 1));
}
return acc.concat(val);
}, []);
}
flattenDepth([1, [2, [3, [4]]]], 1);
// → [1, 2, [3, [4]]]
flattenDepth([1, [2, [3, [4]]]], 2);
// → [1, 2, 3, [4]]
```

실제 사용 사례


```javascript
// API 응답 데이터 정규화
const responses = [
{ id: 1, items: [10, 20] },
{ id: 2, items: [30, 40] }
];
const allItems = flatten(
responses.map(r => r.items)
);
// → [10, 20, 30, 40]
```
: ES2019부터 `Array.prototype.flat()`이 내장되었으므로 실무에서는 `arr.flat(depth)`를 사용하세요.
📚 [MDN Array.prototype.flat()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat)
💬 0
👁 0 views

Comments (0)

💬

No comments yet.

Be the first to comment!