arr.map(callback(currentValue[, index[, array]])[, thisArg])
- 배열의 각각의 요소별로 콜백함수를 적용하고, 그 결과들을 모아 새로운 배열을 반환함.
즉 기존의 배열에 연산을 거쳐 새로운 배열을 만들고 싶을 때 유용.
- 기존의 배열은 그대로.
매개변수
1)
callback
새로운 배열 요소를 생성하는 함수. 다음 세 가지 인수를 가집니다.currentValue
Required 처리할 현재 요소.
index
Optional 처리할 현재 요소의 인덱스.
array
Optionalmap()
을 호출한 배열.
2)
thisArg
Optional callback
을 실행할 때 this
로 사용되는 값.반환값
배열의 각 요소에 대해 실행한
callback
의 결과를 모은 새로운 배열.적용 예시
각 배열 요소 전부에 함수를 적용시켜서 나온 결과값으로 새로운 배열을 만듦.
const numbers = [4, 9, 16, 25, 36]; const result = numbers.map(Math.sqrt); console.log(result); ==> [ 2, 3, 4, 5, 6 ]
const oneTwoThree = [1, 2, 3]; const result = oneTwoThree.map((v) => { return v + 1; }); result; // [2, 3, 4]
오브젝트 배열 재구성 예시
const kvArray = [{key:1, value:10}, {key:2, value:20}, {key:3, value: 30}]; const reformattedArray = kvArray.map(obj=>{ const 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}]