2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

자바스크립트에서 Array.prototype.flat()의 사용법은 무엇인가요?

_____
Q1: Array.prototype.flat() 메서드는 무엇인가요?
A1: flat() 메서드는 중첩된 배열을 지정한 깊이(depth)만큼 재귀적으로 평탄화(flatten)하여 새로운 배열을 반환하는 자바스크립트 배열 메서드입니다.

---

Q2: flat() 메서드의 기본 문법은 어떻게 되나요?
A2:
```javascript
let newArray = arr.flat(depth);
```
- `arr`: 원본 배열
- `depth`(선택): 평탄화 할 깊이(기본값은 1)
`newArray`는 평탄화된 새 배열입니다.

---

Q3: depth 인자가 없으면 어떻게 동작하나요?
A3: 기본값 1로 동작하여, 배열 내부의 1단계 중첩 배열만 평탄화합니다.
예:
```javascript
[1, [2, 3], [4, [5]]].flat();
// 결과: [1, 2, 3, 4, [5]]
```

---

Q4: depth 인자를 2 이상으로 지정하면 어떻게 되나요?
A4: 중첩된 배열의 깊이만큼 재귀적으로 평탄화합니다.
예:
```javascript
[1, [2, 3], [4, [5]]].flat(2);
// 결과: [1, 2, 3, 4, 5]
```

---

Q5: depth에 Infinity를 줄 수 있나요?
A5: 네, 가능합니다. Infinity를 지정하면 모든 중첩 배열을 완전히 평탄화합니다.
예:
```javascript
[1, [2, [3, [4]]]].flat(Infinity);
// 결과: [1, 2, 3, 4]
```

---

Q6: flat() 메서드는 원본 배열을 변경하나요?
A6: 아니요, flat()는 원본 배열을 변경하지 않고 새로운 평탄화된 배열을 반환합니다.

---

Q7: flat() 메서드는 어떤 경우에 유용한가요?
A7: 중첩 배열을 한 단계 혹은 여러 단계 평탄화해서 단일 배열로 만들고자 할 때 유용합니다. 예를 들어, 여러 차원 배열 데이터를 단일 차원의 배열로 처리할 때 사용합니다.

---

Q8: flat() 메서드가 지원되는 환경은 어디인가요?
A8: ECMAScript 2019(ES10)부터 표준화되었으며, 대부분의 최신 브라우저 및 Node.js에서 지원됩니다. 구버전 환경에서는 polyfill이 필요할 수 있습니다.

---

Q9: flat()과 flatMap()의 차이점은 무엇인가요?
A9: flat()은 배열을 평탄화만 하지만, flatMap()은 배열의 각 요소에 함수(map)를 적용한 뒤 한 번만 평탄화합니다. 즉, flatMap()는 map() + flat(1) 효과를 겸한 메서드입니다.

---

Q10: flat() 메서드 사용 예시를 보여주세요.
A10:
```javascript
const arr = [1, 2, [3, 4, [5, 6]]];

// 기본 사용 (depth 1)
console.log(arr.flat()); // [1, 2, 3, 4, [5, 6]]

// depth 2 지정
console.log(arr.flat(2)); // [1, 2, 3, 4, 5, 6]
```

---

이상으로 Array.prototype.flat() 메서드의 사용법 FAQ였습니다.
`Array.prototype.flat()` 메서드는 자바스크립트에서 배열을 평탄화(flatten)하는 데 사용됩니다.

즉, 다차원 배열을 단일 차원 배열로 변환할 수 있는 기능을 제공합니다.

이 메서드는 ES2019(ES

10)에서 도입되었으며, 다양한 상황에서 유용하게 사용될 수 있습니다.

기본 사용법 `flat()` 메서드는 배열을 인자로 받아서, 그 배열의 모든 하위 배열을 지정된 깊이까지 평탄화한 새로운 배열을 반환합니다.

기본적으로 `flat()` 메서드는 깊이 1로 평탄화합니다.

```javascript const arr = [1, 2, [3, 4, [5, 6]]]; const flattened = arr.flat(); console.log(flattened); // [1, 2, 3, 4, [5, 6]] ``` 위의 예제에서 `arr` 배열은 중첩 배열을 포함하고 있습니다.

`flat()` 메서드를 호출하면 1단계 깊이까지 평탄화되어 `[1, 2, 3, 4, [5, 6]]`가 됩니다.

깊이 인자 `flat()` 메서드는 깊이를 인자로 받을 수 있으며, 이 인자는 배열을 평탄화할 깊이를 지정합니다.

기본값은 1입니다.

```javascript const arr = [1, 2, [3, 4, [5, 6]]]; const flattened = arr.flat(

2); console.log(flattened); // [1, 2, 3, 4, 5, 6] ``` 위의 예제에서 `flat(

2)`를 사용하여 2단계 깊이까지 평탄화하였으므로, 최종 결과는 `[1, 2, 3, 4, 5, 6]`가 됩니다.

Infinity를 사용한 평탄화 `flat()` 메서드에 `Infinity`를 인자로 전달하면, 배열의 모든 하위 배열을 무한히 평탄화할 수 있습니다.

```javascript const arr = [1, [2, [3, [4, [5]]]]]; const flattened = arr.flat(Infinity); console.log(flattened); // [1, 2, 3, 4, 5] ``` 이 경우, 모든 중첩 배열이 평탄화되어 단일 배열로 반환됩니다.

빈 배열 및 중복 제거 `flat()` 메서드는 빈 배열을 무시하고 평탄화합니다.

중복된 값은 제거되지 않으며, 원래 배열의 모든 요소가 포함됩니다.

```javascript const arr = [1, 2, [], [3, 4]]; const flattened = arr.flat(); console.log(flattened); // [1, 2, 3, 4] ``` 사용 예시 1. 데이터 정리 : API로부터 받은 데이터가 중첩 배열 형태일 때, 이를 평탄화하여 쉽게 접근할 수 있도록 할 수 있습니다.

```javascript const data = [ { id: 1, tags: ['js', 'frontend'] }, { id: 2, tags: ['css', 'frontend'] }, { id: 3, tags: ['node', 'backend'] }, ]; const allTags = data.map(item => item.tags).flat(); console.log(allTags); // ['js', 'frontend', 'css', 'frontend', 'node', 'backend'] ```

2. 중첩 배열 처리 : 다차원 배열을 처리할 때 유용합니다.

```javascript const nestedArray = [1, [2, [3, [4]]]]; const flatArray = nestedArray.flat(

3); console.log(flatArray); // [1, 2, 3, 4] ``` 주의사항 - `flat()` 메서드는 원본 배열을 변경하지 않고, 새로운 배열을 반환합니다.

- 배열의 요소가 배열이 아닌 경우, 해당 요소는 그대로 유지됩니다.

- `flat()` 메서드는 배열이 아닌 객체에서 호출할 경우, TypeError가 발생합니다.

결론 `Array.prototype.flat()` 메서드는 자바스크립트에서 배열을 평탄화하는 데 매우 유용한 도구입니다.

다양한 깊이로 배열을 평탄화할 수 있으며, 복잡한 데이터 구조를 간단하게 처리할 수 있도록 도와줍니다.

이를 통해 데이터의 접근성과 가독성을 높일 수 있습니다.

작성자: 김현지 [비회원] | 작성일자: 1년 전 2024-09-08 14:47:28
조회수: 141 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.