본문 바로가기
FrontEnd/React.js

map()함수 사용하기

by J._.cobb 2022. 6. 27.

map()함수 사용하기

배열함수 map()은 forEach()와 마찬가지로 for문에서 사용하던 순번과 배열의 크기 변수를 사용하지 않는다. 차이점은 map()은 forEach()와 달리 return을 사용해 반환 값을 받을 수 있다는 것이다.

예제코드

App.js

import React from 'react';
import './App.css';
import Map from './R015_Map';

function App() {
  return (
    <div>
      <h1>Start React 200!</h1>
      <p>css 적용하기</p>
      <Map/>
    </div>
  );
}

export default App;

R015_Map.js

import React, { Component } from "react";

class R015_Map extends Component {

  componentDidMount() {
    var Map_Arr = [3,2,8,8];
    let Map_newArr = Map_Arr.map(x=>x);
    console.log("1. Map_newArr : ["+Map_newArr+"]");

    let Map_mulitiArr = Map_Arr.map(x => x * 2);
    console.log("2. Map_mulitiArr : ["+Map_mulitiArr+"]");

    var ObjArray = [{key: 'react', value:'200'},
                    {key:'리액트', value:'TwoHundred'}];
    let Map_objArr = ObjArray.map((obj, index) => {
      console.log((index+3)+". obj : "+JSON.stringify(obj));
      var Obj = {};
      Obj[obj.key] = obj.value;
      return Obj;
    });
    console.log("5. Map_objArr : "+JSON.stringify(Map_objArr));
  }

  render(){
    return (
      <h2>[THIS IS Map]</h2>
    )
  }
}

export default R015_Map;

코드해설

기존배열(Map_Arr)에서 map() 함수를 사용해 순서대로 하나씩 요소에 접근해 가져온다. 이때마다 콜백 함수가 실행된다. 가져온 값을 변수 x에 넣은 후 그대로 반환해(x⇒x)순서대로 쌓아 놓는다. 마지막 요소까지 반복했다면, 한 번에 새로운 배열(Map_newArr)에 저장한다.

화살표 함수는 return 구문을 생략할 수 있다. line 7에서 사용한 Map_Arr.map(x ⇒ x)는 Map_Arr.map(x ⇒ {return x})와 동일하게 동작한다.

Line10

  • 기존 배열(Map_Arr)의 요소에 순서대로 접근 후 각각 2를 곱해 새로운 배열(Map_mulitiArr)에 저장한다.

Line 13~14

  • 배열 안에 객체를 생성한다.

Line 15

  • 배열 안의 객체를 순서대로 가져와 콜백 함수를 실행하는데, 가져온 값을 obj라는 변수에 저장한다. 콜백 함수의 두 번째 인자인 index는 기존 배열의 인덱스와 동일하다.

Line 16

  • 기존 배열에서 가져온 객체 값을 순서대로 출력한다.

Line 17~19

  • 새로운 객체(Obj)를 선언한다. 기존 객체(ObjArray)의 key, value 값을 새로운 객체(Obj)의 key, value 값으로 저장한다. 모든 반복이 끝나면 line 15의 Map_objArr 변수에 반환 값들을 저장한다.

실행결과

'FrontEnd > React.js' 카테고리의 다른 글

Props 사용하기  (0) 2022.06.27
jquery 사용하기  (1) 2022.06.27
forEach() 함수 사용하기  (0) 2022.06.26
화살표 함수 사용하기  (0) 2022.06.26
class 사용하기  (0) 2022.06.26