iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
Software Development

LeetCode-30 Days of JavaScript系列 第 5

LeetCode JS30-Day05 | 轉換陣列元素- 2635. Apply Transform Over Each Element in Array

  • 分享至 

  • xImage
  •  

Day05 - 2635. Apply Transform Over Each Element in Array EASY

Description❓

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).
接受一個整數陣列arr和映射函數fn並且返回對原陣列進行應用轉換後的新陣列。
返回的陣列應創建為 returnedArray[i] = fn(arr[i], i)

Please solve it without the built-in Array.map method.
請在沒有使用Array.map()的情況下解決這個問題。

Points

Solution✍️

[ ▶️挑戰這一題 ][ 本日代碼 ]

  1. 題目需要我們設計一個帶入整數陣列和映射函式,不使用array.map(),返回轉換後陣列的函式。
const map = (arr,fn)=>{
   let returnedArray = [];
   ...
   return returnedArray;
}
  1. 用for迴圈遍歷 調用fn() 帶入arr陣列每個元素的值以及索引 returnedArray[i] = fn(arr[i], i)
  2. 將fn()返回的值 push 到 returnedArray
const map = (arr,fn)=>{
   let returnedArray = [];
   for(let i=0;i<arr.length;i++){
      returnedArray.push(fn(arr[i],i));
   };
   return returnedArray;
}

Testcase

let arr1 = [1,2,3];
let fn1 = function plusone(n) { return n + 1; };
console.log(map(arr1,fn1));
let arr2 = [1,2,3];
let fn2 = fn = function plusI(n, i) { return n + i; }
console.log(map(arr2,fn2));
let arr3 = [10,20,30];
let fn3 = fn = function constant() { return 42; }
console.log(map(arr3,fn3));

上一篇
LeetCode JS30-Day04 | 打倒第一隻史萊姆!(用閉包) - 2665.Counter II
下一篇
LeetCode JS30-Day06 | 陣列 Array.filter() - 2634. Filter Elements from Array
系列文
LeetCode-30 Days of JavaScript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言