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 builtin Array.map
method.
Example 1:
Input: arr = [1,2,3], fn = function plusone(n) { return n + 1; }
Output: [2,3,4]
Explanation:
const newArray = map(arr, plusone); // [2,3,4]
The function increases each value in the array by one.
Example 2:
Input: arr = [1,2,3], fn = function plusI(n, i) { return n + i; }
Output: [1,3,5]
Explanation: The function increases each value by the index it resides in.
Example 3:
Input: arr = [10,20,30], fn = function constant() { return 42; }
Output: [42,42,42]
Explanation: The function always returns 42.
Constraints:
0 <= arr.length <= 1000
10^9 <= arr[i] <= 10^9

fn
returns a number
Solution
Code walkthrough
var map = function (arr, fn) {
This is the function declaration. The map
function takes in tow arguments, arr
(an array of numbers), and fn
(a function that will be applied to each element of the array).
let newArr = [];
Create an empty array to store the transformed array elements.
for (let i = 0; i < arr.length; i++)
Loop through the entire input array arr
newArr[i] = fn(arr[i], i);
Checks whether every array element in arr[i]
meets the specified condition and stores the result in the empty array newArr
return newArr;
Returns the newly created array containing the transformed elements.
Top comments (0)