TIL. map함수
Map 함수
map은 callback 함수를 각각의 요소에 대해 한번씩 순서대로 불러 그 함수의 반환값으로 새로운 배열을 만듭니다.
callback
- callback 함수는 배열 값이 들어있는 인덱스에 대해서만 호출된다.
- 값이 삭제되거나 아직 값이 할당/정의되지 않은 인덱스에 대해서는 호출되지 않는다.
- 호출될 때 대상 요소의 값, 그 요소의 인덱스, 그리고 map을 호출한 원본 배열 3개의 인수를 전달 받는다.
Map함수의 형태
arr.map(callback(currentValue[, index[, array]])[, thisArg]
매개변수
-
callback : 새로운 배열 요소를 생성하는 함수.
-
currentValue : 처리할 현재요소
-
index : 처리할 현재 요소의 인덱스
-
array : map()을 호출한 배열.
-
thisArg : callback을 실행할 때 this로 사용되는 값.
예제
- 숫자의 배열을 받아 각 숫자들의 제곱근이 들어있는 새로운 배열을 만든다.
let numbers = [1, 4, 9];
let roots = numbers.map(Math.sqrt);
// roots는 [1, 2, 3]
// numbers는 그대로 [1, 4, 9]
- 인자가 한개인 함수를 이용하여 map이 어떻게 동작하는지 나타낸다.
- 인자인 배열과 안의 요소들은 map을 통해 순회하면서 원본 배열로 부터 자동으로 할당된다.
let numbers = [1, 4, 9];
let doubles = numbers.map(function(num) {
return num * 2;
doubles 는 이제 [2, 8, 18]
numbers는 그대로 [1, 4, 9]