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會員
    5內容數
    留言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
    你可能也想看
    Google News 追蹤
    Thumbnail
    接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
    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
    接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
    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