Front-End/Javascript
[Javascript] Array.Map((v) => ???) 배열 요소 변환하기!
Hamstar_
2020. 9. 25. 20:56
! Array의 map함수는 Array 내의 모든 요소를 순회하며 콜백함수를 거친 새로운 배열을 반환한다.
Number type을 가지고 있는 Array의 각 요소를 String type으로 변경하려 할 때
일반적으로 for문을 돌며 toString으로 바꿔왔지만,
Array.Map 함수와 Arrow function을 함께 사용하면 매우 간단하게 변경할 수 있다는 걸 발견했다.
1. Syntax
let new_array = arr.map(function callback( currentValue[, index[, array]]) {
// return element for new_array
}[, thisArg])
Parameters
callback 함수는 arr의 모든 요소를 호출하고, 매번 callback이 실행될 때 마다 반환되는 값을 new_array에 추가한다.
callback 함수는 다음과 같이 세가지의 인자를 받는다.
currentValue : 현재 배열에서 처리되는 요소
index | Optional : 현재 배열에서 처리되는 요소의 인덱스
array | Optional : map을 호출한 배열
thisArg | Optional : callback을 실행 할 때 this로 사용되는 값
Return Value
콜백 함수 결과의 요소 값이 들이있는 새 배열.
2. Example
문제.
프로그래머스의 “가장 큰 수”, 0 또는 양의 정수를 가진 배열이 주어졌을 때 정수를 이어붙여 만들 수 있는 가장 큰 수를 찾아라.
let arr = [4, 40, 54, 8, 7];
for (let i = 0; i < arr.length; i++) {
arr[i] = arr[i].toString();
}
let new_array = new_array.sort((a, b) => (b + a) * 1 - (a + b) * 1).join("");
// 8754440
↓↓↓
let arr = [4, 40, 54, 8, 7];
let new_array = arr.map((v) => v.toString())
let new_array = new_array.sort((a, b) => (b + a) * 1 - (a + b) * 1).join("");
// 8754440