inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

객체 업데이트 하기

map메소드에 대해 질문있습니다.

84

부드러운 족제비

작성한 질문수 66

0

안녕하세요 강의 너무 잘 듣고 있습니다 공부를 하다가 map메소드에 대해 궁금한점이 있습니다. 예를 들어 items.map((item) => ) 여기서 어떨때에는 items.map((item) => () ) 화살표 다음에 ()가 오고 또 어떤 상황에는 items.map((item) => {}) 이렇게 {} 가 작성되는데 어떤 차이점이 있는지 궁금합니다.

react React-Context react-router tailwindcss react-query

답변 1

0

짐코딩

안녕하세요! map 메소드에서 화살표 함수 다음에 오는 (){} 의 차이점에 대해 설명해 드리겠습니다.

1. items.map((item) => (...)) - 괄호 사용

이 방식은 암시적 반환(implicit return) 을 사용합니다:

const numbers = [1, 2, 3];
const doubled = numbers.map((number) => (number * 2));
// 결과: [2, 4, 6]

리액트에서 주로 JSX 요소를 반환할 때 이 방식을 많이 사용합니다:

const items = ['사과', '바나나', '딸기'];
const itemsList = (
  <ul>
    {items.map((item) => (
      <li key={item}>{item}</li>
    ))}
  </ul>
);

이 방식의 특징:

  • 값이 자동으로 반환됩니다 (return 키워드 필요 없음)

  • 코드가 한 줄이거나 단일 JSX 요소를 반환할 때 깔끔합니다

  • 괄호는 선택사항이지만, JSX를 반환할 때는 가독성을 위해 권장됩니다

2. items.map((item) => {...}) - 중괄호 사용

이 방식은 함수 본문(function body) 을 정의합니다:

const numbers = [1, 2, 3];
const doubled = numbers.map((number) => {
  // 여러 줄의 코드 작성 가능
  const result = number * 2;
  return result; // 명시적 return 필요
});
// 결과: [2, 4, 6]

리액트에서의 사용 예:

const items = ['사과', '바나나', '딸기'];
const itemsList = (
  <ul>
    {items.map((item) => {
      const upperCase = item.toUpperCase();
      return <li key={item}>{upperCase}</li>;
    })}
  </ul>
);

이 방식의 특징:

  • 여러 줄의 코드를 실행할 수 있습니다

  • 값을 반환하려면 반드시 return 키워드가 필요합니다

  • 조건문이나 변수 선언 등 추가 로직이 필요할 때 사용합니다

요약

  1. () => (...): 간단한 표현식, 자동 반환

  2. () => {...}: 복잡한 로직, 명시적 return 필요

보통 단순히 JSX를 반환하거나 간단한 변환만 필요할 때는 첫 번째 방식을 사용하고, 데이터 처리나 조건부 로직이 필요할 때는 두 번째 방식을 사용합니다.

도움이 되셨으면 좋겠습니다!

0

부드러운 족제비

답변과 도움 주셔서 감사합니다 ^^

오타?

0

27

1

뭐하나 여쭤봐도 될까요?

0

70

1

안녕하세요 질문이 있습니다.

0

55

2

질문 : 삭제 버튼 아규먼트 (id)

0

50

1

Tailwind 버전 확인

0

62

1

align-items 정렬

0

50

2

vite 명령어로 프로젝트를 만들었습니다. (vscode)

0

79

1

31. 객체 업데이트 하기 - 10:15 질문

1

55

2

강의교안, 내용 인용해서 블로그 글 작성

1

80

2

이미지가 출력되지 않아요

1

73

2

강의와 만들어진 코드가 달라요

0

75

3

AI와 CSS 라이브러리의 궁합

0

95

1

onClick 이벤트에 함수 넘길 때

0

64

1

린캔버스 기능 구현은 왜 못하나요.... 구현하고 싶습니다...

0

101

1

notes 없음 읽기 오류

0

72

1

Object.assign 문법

0

64

1

react-router 전혀 기능 안함

0

53

1

react-router-dom@6.25.1

0

47

1

React Router 최신 스펙

0

207

1

Immer 에서 filter, map 사용

0

54

1

vite 설치에 대해 질문있습니다.

0

76

2

라이브러리 버전 일치 이슈

0

76

1

"Enter 키 발생 시 항목 추가" 부분에서 공백이 포함되면 한 줄이 더 입력됩니다

0

49

2

TotalCounter을 작성할때

0

65

2