Solution #2635 Apply Transform Over Each Element in Array

Susan Githaiga - Aug 14 - - Dev Community

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

Image description

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.

. . . . . . . . . .
Terabox Video Player