문제
Given an integer array arr and a mapping function fn, return a new array with a transformation applied to each element.
The returned array should be created such that returnedArray[i] = fn(arr[i], i).
Please solve it without the built-in Array.map method.
예제
Arrays.map을 구현하는 함수로써, arr 원소들을 돌며 각각 fn(n) 값을 구해 새로운 배열에 넣는다.
위 예제의 경우 plusI의 두번째 파라미터로 인덱스가 들어가는 것에 유의한다.
constant() 함수가 파라미터에 상관없이 42를 반환하기 때문에 답은 arr의 길이만큼 42로 채워져 있는 배열이 된다.
코드
/**
* @param {number[]} arr
* @param {Function} fn
* @return {number[]}
*/
var map = function(arr, fn) {
const mappedArr = []
arr.forEach((el, idx) => {
mappedArr.push(fn(el, idx));
})
return mappedArr;
};
새로운 배열 mappedArr를 생성한 뒤, arr를 순회하며 각각의 원소와 인덱스값을 fn 함수에 넣는다. 이후 매번 반환된 값을 mappedArr에 넣고 순환이 종료되면 반환시킨다.
'Algorithm' 카테고리의 다른 글
[LeetCode] 2665. Counter II (0) | 2024.01.25 |
---|---|
[LeetCode] 2648. Generate Fibonacci Sequence (0) | 2024.01.24 |
[LeetCode] 2634. Filter Elements from Array (0) | 2024.01.22 |
[LeetCode] 2629. Function Composition (0) | 2024.01.21 |
[LeetCode] 2626. Array Reduce Transformation (0) | 2024.01.21 |