## DEV Community

Susan Githaiga

Posted on • Updated on

# Solution #2635 Apply Transform Over Each Element in Array

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.

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

## 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.