[Easy] LeetCode JS 30 - 2635. Apply Transform Over Each Element in Array (手寫原生陣列 map 方法)
2024年3月8日
💎 加入 E+ 成長計畫 與超過 400+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源
LeetCode 30 Days of JavaScript
本題來自 LeetCode 的 30 天 JacaScript 挑戰
2635. Apply Transform Over Each Element in Array (手寫原生陣列 map 方法)題目描述
給定一個只有整數的陣列 arr
,以及一個函式 fn
;要返回一個新的陣列,新陣列的每個元素都需要套用 fn
,讓回傳的陣列會成為 returnedArray[i] = fn(arr[i], i)
。本題不得使用 JavaScript 內建的 Array.map
方法來解。
// 範例一
輸入: arr = [1,2,3], fn = function plusone(n) { return n + 1; }
輸出: [2,3,4]
解說:
const newArray = map(arr, plusone); // [2,3,4]
該函式將陣列中的每個值都增加一
// 範例二
輸入: arr = [1,2,3], fn = function plusI(n, i) { return n + i; }
輸出: [1,3,5]
解說: 該函式將陣列中的每個值都增加其索引的量
本題解答
以下是本題的解答,詳細解題思路可以在 E+ 成長計畫看到。如果想練習更多題目,推薦可以到 GreatFrontEnd 上練習
解法
var map = function (arr, fn) {
const returnedArray = [];
for (let i = 0; i < arr.length; i++) {
returnedArray[i] = fn(arr[i], i);
}
return returnedArray;
};