ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • map
    Programming/JavaScript & TypeScript 2021. 9. 26. 13:19
    728x90

    Java script 내장함수 map 

    파라미터로 전달된 함수를 사용해서 배열 내 각 요소를 원하는 규칙에 따라 변환한 후 결과 반환

     

    array.map(callback, [thisArg])

    기본형은 함수를 넘겨서 작업하는 방법

    var numbers = [1,2,3,4,5]
    
    var processed = numbers.map(function(num){
    					return num*num
                        });
    console.log(processed)

    화살표 함수를 이용할 수도 있다.

    var numbers = [1,2,3,4,5]
    
    var processed = numbers.map(num=>num*num)
    console.log(processed)

     

    결국 map을 어떻게 컴포넌트에 적용하느냐는 다음 예제를 보자

    li를 만들어서 저장해두고 ul에 넣자.

    import React from 'react'
    
    const IterationSample = () => {
    	const names = ["a", "b", "c", "d"]
        const nameList = names.map(name => <li>{name}</li>);
        return <ul>{nameList}</ul>

    map을 사용할때는 항상 key를 넣어줘야한다. 런타임시에 오류가 나는 것은 아니지만, 로그에 오류가남는다. 

    위의 예제에서는 map에서 반환하는 index를 키로 넣어주면 되겠다.

    import React from 'react'
    
    const IterationSample = () => {
    	const names = ["a", "b", "c", "d"]
        const nameList = names.map( (name, index) => <li key={index}>{name}</li>);
        return <ul>{nameList}</ul>

     

    index는 어디서 온걸까..

    맨 처음에 map을 사용할때는 callback함수가 온다고 했다. 

    이때 callback함수안에는 총 3가지 요소가 들어있다.

    array.map(callback, [thisArg])
    * callback : 새로운 배열 요소를 생성하는 함수로 파라미터는 3가지
    1) currentValue : 현재 처리하고 있는 요소
    2) index : 현재 처리하고 있는 요소의 index값
    3) array : 현재 처리하고 있는 원본 배열

    thisArgs: callback함수 내에서 사용할 this 레퍼런스

    'Programming > JavaScript & TypeScript' 카테고리의 다른 글

    TypeScript vs JavaScript  (0) 2022.02.15
    리액트를 다루는 기술  (0) 2021.12.16
    클래스 컴포넌트 vs 함수형 컴포넌트  (0) 2021.09.25
    리액트 공부 / 추천 사이트  (0) 2021.09.25
    ES6 변경사항  (0) 2021.09.25
Designed by Tistory.