2626. Array Reduce Transformation

更新於 2024/03/16閱讀時間約 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
};




    avatar-img
    0會員
    5內容數
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    高的沙龍 的其他內容
    問題 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
    你可能也想看
    Google News 追蹤
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    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
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    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