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
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.
I hope this article helps. If you like the article, please leave a like and feel free to leave any concerns on the comment section. That is all for today.
Top comments (0)