less than 1 minute read

Map 함수

map은 callback 함수를 각각의 요소에 대해 한번씩 순서대로 불러 그 함수의 반환값으로 새로운 배열을 만듭니다.

callback

  • callback 함수는 배열 값이 들어있는 인덱스에 대해서만 호출된다.
  • 값이 삭제되거나 아직 값이 할당/정의되지 않은 인덱스에 대해서는 호출되지 않는다.
  • 호출될 때 대상 요소의 값, 그 요소의 인덱스, 그리고 map을 호출한 원본 배열 3개의 인수를 전달 받는다.

Map함수의 형태

arr.map(callback(currentValue[, index[, array]])[, thisArg]

매개변수

  • callback : 새로운 배열 요소를 생성하는 함수.

  • currentValue : 처리할 현재요소

  • index : 처리할 현재 요소의 인덱스

  • array : map()을 호출한 배열.

  • thisArg : callback을 실행할 때 this로 사용되는 값.

예제

  1. 숫자의 배열을 받아 각 숫자들의 제곱근이 들어있는 새로운 배열을 만든다.
let numbers = [1, 4, 9];
let roots = numbers.map(Math.sqrt);

// roots는 [1, 2, 3]
// numbers는 그대로 [1, 4, 9]
  1. 인자가 한개인 함수를 이용하여 map이 어떻게 동작하는지 나타낸다.
    • 인자인 배열과 안의 요소들은 map을 통해 순회하면서 원본 배열로 부터 자동으로 할당된다.
let numbers = [1, 4, 9];
let doubles = numbers.map(function(num) {
		return num * 2;
doubles 는 이제 [2, 8, 18]
numbers는 그대로 [1, 4, 9]

Tags: ,

Updated: