새로운 배열을 만들 때 사용한다.
- 결과로 새로 나오는 새 배열과 기존배열은 다르다.
- callbackFunction을 실행한 결과를 가지고 새로운 배열을 만들 때 사용한다.
- callbackFunction은 다른 함수에 인수로 전달된 함수로, 외부 함수 내부에서 호출되어 일종의 루틴이나 작업을 완료하는 것을 의미한다.
[배열].map(callback(currendValue, index, array), thisArg)
callback
은 current, index, array 등 3개의 인수를 가진다.currentValue
: 배열의 현재 요소index
(optional) : 배열의 현재 요소의 인덱스array
(optional) : map()을 호출한 배열, arr의 배열을 가져 오는 것thisArg
: callback을 실행할 때 this로 사용되는 값새로운 배열을 보내는 구조
const num = [1,2,3,4,5,6,7,8,9];
const result = num.map(number => number * 2);
console.log(result);
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// roots는 [1, 2, 3]
// numbers는 그대로 [1, 4, 9]
var kvArray = [{key:1, value:10},
{key:2, value:20},
{key:3, value: 30}];
var reformattedArray = kvArray.map(function(obj){
var rObj = {}; // 새로운 객체 생성
rObj[obj.key] = obj.value;
return rObj;
});
// reformattedArray는 [{1:10}, {2:20}, {3:30}]
// kvArray는 그대로
// [{key:1, value:10},
// {key:2, value:20},
// {key:3, value: 30}]
var numbers = [1, 4, 9];
var doubles = numbers.map(function(num) {
return num * 2;
});
// doubles는 이제 [2, 8, 18]
// numbers는 그대로 [1, 4, 9]
let str_arr = [ '1', '2', '3', '4', '5']
let int_arr = str_arr.map(Number)
console.log(int_arr) // [ 1, 2, 3, 4, 5 ]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map