1 minute read

map()

map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환하는 메서드이다.

for of 문이나 forEach처럼 배열 내 요소들을 반복하는 반복문의 한 종류인데, 조금 독특한 부분은 매 반복마다 return 되는 결과에 따라 새로운 배열을 만들어낸다는 것이다.

예전 array를 가져와서 변형을 한다.

['one', 'two'].map(() => ":)")


가끔 각각의 array를 바꾸고 싶을 떼 해당 element를 모두 바꾸고싶고, 다 바뀐 array를 가지고 싶을 때 사용

https://velcdn.com

()괄호 안에 적은 함수가 5번 실행된다는 뜻이다.

그 함수로부터 내가 return하 어떠한 값은 새로운 array에 들어가게 되는 것이다.


https://velcdn.com

map은 하나의 array에 있는 item을 내가 무엇이든지로 바꿔주는 역할을 하고, 결국 새로운 array로 return해준다는 말이 된다.

map()은 함수의 첫번째 argment로 현재의 item을 가져올 수 있다.

그리고 우리가 return 하는 어떤 값이던지 간에

해당 값이 새로운 array에 들어가게 된다.


예를 들어 item.toUpperCase()라고 해보겠다.

https://velcdn.com

보는바와 같이 기존에 가지고 있던 아이템을 기반으로 새로운 변화를 주는 것도 가능하다는 것을 알 수 있다.



문법

다음으로 map()의 문법은 아래와 같다.

myArray.map(callback(current value, index, array), this)

여기서 콜백함수는 세 가지 인자를 전달하고 두 번째로 this값을 인자로 받을 수 있다.

각각 다음과 같이 사용된다.

  • current value (현재 반환할 값)
  • index (
  • array (
  • this (메서드가 호출된 원래 배열)


📌예제

숫자 배열의 각 숫자에 2를 곱하는 함수를 적용하여 

doubleNumbers라는 새로운 배열을 만들었다.

map()메서드가 이 함수를 숫자 배열의 각 요소에 적용하고

새 배열을 반환한 것을 확인할 수 있다.

let numbers = [1, 2, 3, 4, 5];
let doubledNumbers = numbers.map(function(num) {
return num * 2;
});
console.log(doubledNumbers); // output: [2, 4, 6, 8, 10]

Tags:

Categories:

Updated:

Leave a comment