今天才發現原來在題目上面有寫這是什麼樣的主題,前幾天都是Closures
今天開始進入Basic Array Transformations
Day 5: 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.
問題難度:Easy
問題限制:
0 <= arr.length <= 1000
109 <= arr[i] <= 109
fn
returns a number
我的解題思路
我想題目應該就是要我們把arr在fn裡面遍歷出來。
在不能用map的情況下用最簡單的for迴圈:
1 | var map = function(arr, fn) { |
但在第2個測試出現錯誤,回傳NAN。
原因在於它需要兩個參數,但我只給一個參數,因此只要解決這個問題就可以了。
1 | var map = function(arr, fn) { |
在執行fn
時,給參數多給一個i即可。
其他解法
使用forEach:
1 | var map = function(arr, fn) { |
使用 for…of 迴圈:
1 | var map = function(arr, fn) { |
結語
當下看到題目限制時我整個驚慌失措,我就都只用map()
不用我不會啊。
雖然當下有閃過用ForEach
,但實在是想不起來要怎麼去使用它,因此用了最基本的for迴圈來完成這題。