2626. Array Reduce Transformation

閱讀時間約 4 分鐘

(略),array 是用來將陣列的值進行累加,我們來看看怎麼怎麼達成吧:

Given an integer array nums, a reducer function fn, and an initial value init, return the final result obtained by executing the fn function on each element of the array, sequentially, passing in the return value from the calculation on the preceding element.

This result is achieved through the following operations: val = fn(init, nums[0]), val = fn(val, nums[1]), val = fn(val, nums[2]), ... until every element in the array has been processed. The ultimate value of val is then returned.

If the length of the array is 0, the function should return init.

Please solve it without using the built-in Array.reduce method.

 

Example 1:

Input: 
nums = [1,2,3,4]
fn = function sum(accum, curr) { return accum + curr; }
init = 0
Output: 10
Explanation:
initially, the value is init=0.
(0) + nums[0] = 1
(1) + nums[1] = 3
(3) + nums[2] = 6
(6) + nums[3] = 10
The final answer is 10.

Example 2:

Input: 
nums = [1,2,3,4]
fn = function sum(accum, curr) { return accum + curr * curr; }
init = 100
Output: 130
Explanation:
initially, the value is init=100.
(100) + nums[0] * nums[0] = 101
(101) + nums[1] * nums[1] = 105
(105) + nums[2] * nums[2] = 114
(114) + nums[3] * nums[3] = 130
The final answer is 130.

Example 3:

Input: 
nums = []
fn = function sum(accum, curr) { return 0; }
init = 25
Output: 25
Explanation: For empty arrays, the answer is always init.

 

解題思路

我們首先先建立一個函式,並包含題目要求的三個元素:數組 nums、一個 reducer 函數 fn 和一個初始值 init

const reduce = function(nums, fn, init) 

因為會需要迭代,所以我們要先宣告一個最終返回的值

let current = init

接著依照 nums 陣列的長度執行每一次 fn 函式的迴圈,並變更值

 for (let i = 0; i < nums.length; i++) {
current = fn(current, nums[i]);
}

最後再回傳 current 值就完成了


const reduce = function(nums, fn, init) {
let current = init
for (let i = 0; i < nums.length; i++) {
current = fn(current, nums[i]);;
}
return current
};




    0會員
    3內容數
    留言0
    查看全部
    發表第一個留言支持創作者!
    高的沙龍 的其他內容
    問題 Write a function expect that helps developers test their code. It should take in any value val and return an object with the following two functio
    問題 Write a function expect that helps developers test their code. It should take in any value val and return an object with the following two functio
    你可能也想看
    Thumbnail
    重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
    Thumbnail
    近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
    Thumbnail
    話說老陳一位每週持續來調理二次+合計超過20次的63歲顧媽媽,突然今早用賴與老陳如下互動:1.1顧媽媽:“昨晚半夜,不知道為什麼右手肘超級疼痛?”,2.1老陳:“好的。了解。上次歸位右手臂順利,明天再次調理,希望找到發作原因+再確認恢復健康喔!結果:右手臂大面積脫位,造成疼痛;比較左手臂就正常來看,
    26:6 耶穌在伯大尼長大痲瘋的西門家裏, 26:7 有一個女人拿著一玉瓶極貴的香膏來,趁耶穌坐席的時候,澆在他的頭上。 26:8 門徒看見就很不喜悅,說:「何用這樣的枉費呢! 26:9 這香膏可以賣許多錢,賙濟窮人。」 26:10 耶穌看出他們的意思,就說:「為甚麼難為這女人呢?她在我身上做的是一
    Thumbnail
    上次說完了 ARRAYFORMULA 的基本原理,這次來看看怎麼應用它們!一起來看看!
    Thumbnail
    或許 ARRAYFORMULA 是個聞風喪膽的函式,但是你懂了它、它就會幫你!一起來看看 ARRAYFORMULA 是什麼吧!
    Thumbnail
    蝦蜜?!Python沒有內建array?!剛發現這件事時,還真的有點傻眼,怎麼會沒有array這麼好用的data type呢?
      // $data is a two-dimensional array array_multisort(array_column($data, 'column_name'), SORT_ASC, $data); array_multisort(array_column($data, 'colum
    Thumbnail
    重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
    Thumbnail
    近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
    Thumbnail
    話說老陳一位每週持續來調理二次+合計超過20次的63歲顧媽媽,突然今早用賴與老陳如下互動:1.1顧媽媽:“昨晚半夜,不知道為什麼右手肘超級疼痛?”,2.1老陳:“好的。了解。上次歸位右手臂順利,明天再次調理,希望找到發作原因+再確認恢復健康喔!結果:右手臂大面積脫位,造成疼痛;比較左手臂就正常來看,
    26:6 耶穌在伯大尼長大痲瘋的西門家裏, 26:7 有一個女人拿著一玉瓶極貴的香膏來,趁耶穌坐席的時候,澆在他的頭上。 26:8 門徒看見就很不喜悅,說:「何用這樣的枉費呢! 26:9 這香膏可以賣許多錢,賙濟窮人。」 26:10 耶穌看出他們的意思,就說:「為甚麼難為這女人呢?她在我身上做的是一
    Thumbnail
    上次說完了 ARRAYFORMULA 的基本原理,這次來看看怎麼應用它們!一起來看看!
    Thumbnail
    或許 ARRAYFORMULA 是個聞風喪膽的函式,但是你懂了它、它就會幫你!一起來看看 ARRAYFORMULA 是什麼吧!
    Thumbnail
    蝦蜜?!Python沒有內建array?!剛發現這件事時,還真的有點傻眼,怎麼會沒有array這麼好用的data type呢?
      // $data is a two-dimensional array array_multisort(array_column($data, 'column_name'), SORT_ASC, $data); array_multisort(array_column($data, 'colum