Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 동적 웹 페이지
- 상태 관리 라이브러리
- 컴포넌트
- 비동기프로그래밍
- Node.js
- jsx
- 프론트엔드
- 프라미스체이닝
- 웹 성능 최적화
- 풀스택 개발
- html
- 자바스크립트
- dom
- 패키지 스크립트
- 비동기 요청 처리
- tanStack Query
- 자바스크립트공부
- JavaScript
- #프론트엔드개발
- React
- Promise
- 웹 개발
- 퍼포먼스 최적화
- 리액트 기초
- 국제화(i18n)
- fe
- 웹개발
- css
- 코드리뷰
- 웹 성능
Archives
- Today
- Total
sodol-dotcom
map 함수 본문
map 함수는 JavaScript의 배열 메서드 중 하나로, 배열의 각 요소에 대해 특정 작업을 수행하고 그 결과로 새로운 배열을 만들어준다.
초보자가 이해하기 쉽게 구조와 사용 방법을 보면,
1. map 함수의 구조
const newArray = originalArray.map((element, index, array) => {
// 작업을 수행하고 반환할 값
})
- originalArray(원본 배열)
- map 함수를 호출하는 배열. 이 배열의 각 요소에 대해 작업을 수행한다.
- 예를 들어, const numbers = [1, 2, 3] 가 원본 배열이다.
- newArray(새로운 배열)
- map 함수가 반환하는 새로운 배열. 이 배열은 원본 배열의 각 요소에 대해 수행한 작업의 결과로 만들어진다.
- 예를 들어, numbers.map(num ⇒ num * 2) 의 결과로 [2, 4, 6] 가 생성된다.
- element(현재요소)
- map 함수가 원본 배열의 각 요소를 하나씩 가져와서 작업을 수행할 때 그 요소를 가리킨다.
- 예를 들어, 배열 [1, 2, 3] 에서 첫 번째 호출에서는 1, 두 번째에서는 2, 세 번째에서는 3이 element 가 된다.
- index(현재 요소의 인덱스) → 선택적
- 원본 배열에서 현재 요소의 위치를 나타내는 숫자이다. 배열의 첫 번째 요소는 0, 두 번째 요소는 1 등의 형식으로 지정된다.
- 선택적으로 사용할 수 있으며, 예를 들어 numbers.map((num, index) ⇒ index) 는 [0, 1, 2] 를 반환한다.
- array(원본 배열) → 선택적
- 선택적 매개변수로, 현재 map이 호출된 원본 배열 자체를 참조한다. 특정 작업을 수행할 때 요소 뿐만 아니라 배열 전체를 참고할 수 있다.
- 예를 들어, numbers.map((num, index, arr) ⇒ arr.length)는 모든 요소에 대해 원본 배열의 길이를 반환한다.
2. 예시로 이해하기
2-1. 사용 방법
1) 기본 사용 예시: 배열의 각 숫자에 2를 곱하기
const numbers = [1, 2, 3, 4];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6, 8]
2) 객체 배열 변환: 객체 배열에서 특정 속성만 추출하기
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Chalie', age: 35},
];
const names = users.map(user => user.name);
console.log(names); // ['Alice', 'Bob', 'Chalie']
3) 인덱스 활용: 인덱스를 사용하여 작업할 수도 있다.
const numbers = [10, 20, 30];
const indexed = numbers.map((num, index) => `${index}: ${num}`);
console.log(indexed); // ['0: 10', '1: 20', '2: 30']
3. element의 변수명
- element의 변수명(이름)은 어떤 것도 상관 없고, 개발자가 이해하기 쉽도록 자유롭게 선택할 수 있다.
- 예를 들어, numbers.map(n ⇒ n * 2) 처럼 n 이라고 이름을 지을 수도 있고, value 라고 할 수도 있다.
3.1 몇 가지 예시
1. 기본 형태:
const nubmer = [1, 2, 3];
const doubled = numbers.map(num => num * 2);
// num은 현재 요소를 나타냄
2. 다른 이름 사용:
const numbers = [1, 2, 3];
const doubled = numbers.map(value => value * 2);
// value라는 이름으로 사용
3. 의미 있는 이름:
const temperatures = [0, 10, 20];
const fahrenheit = temperatures.map(celsius => (celsius * 9/5) +32);
// celsius라는 이름 사용
즉, num 은 원본 배열의 각 요소를 참조하기 위한 변수 이름일 뿐이다. 각 요소가 어떤 값인지는 그 변수를 통해 처리되는 방식으로 파악할 수 있다. 만약 특정한 의미를 담고 싶다면, 변수명을 보다 명확하게 지어주면 좋다.
4. index, array
- index: 이 부분은 반드시 index 라는 이름으로 사용해야 한다. 인덱스 번호를 나타내는 역할을 함
- array: 선택적 매개변수로, 원본 배열을 참조할 때 array라는 이름을 사용하는 것이 일반적이다. 그러나 사용자가 originalArray 와 같이 다른 이름을 지정해도 된다.
따라서, index 는 반드시 그대로 써야 하고, array 는 자유롭게 바꿀 수 있지만 일반적으로 array 라는 이름을 많이 사용한다.
5. 요약
map 함수
- map 함수는 원본 배열의 각 요소에 대해 작업을 수행하고 새로운 배열을 반환한다.
- 원본 배열은 변하지 않고, 필요한 변형된 값을 새 배열로 만들 수 있다.
- 구조:
const newArray = originalArray.map((element, index, array) => {
// 작업 수행
});
매개변수
- element: 현재 배열의 요소 (변수명 자유롭게 지정 가능).
- index: 현재 요소의 인덱스 (항상 index 사용).
- array: 원본 배열 (일반적으로 array 사용, 다른 이름 가능).
'Fundamentals > JavaScript' 카테고리의 다른 글
Promise Chaining 이해하기: 기존의 프라미스와 반환된 프라미스 (0) | 2024.10.01 |
---|---|
CommonJS와 ES 모듈 시스템 이해하기 (0) | 2024.09.24 |
객체 선언과 제어문의 차이(언제 ';'가 필요한가?) (1) | 2024.09.13 |
reduce() 메소드 (0) | 2024.09.13 |
고정된 프로퍼티 이름과 동적 프로퍼티 이름에 접근하는 방법 (0) | 2024.09.13 |