實作函數,將陣列中的奇數數字做加總
今天來實作一個函數,針對陣列中的奇數數字做加總
用Javascript撰寫
迴圈的方式
1 | function oddSum(arr) { |
函數function命名為oddSum,括號裡面名字(arr)代表陣列
一開始提供容器名稱是sum,初始值是0
用迴圈的方式,在陣列裡面一個一個跑
從陣列[0]開始跑,跑到陣列的最後一個數就結束迴圈
除以2會留下1的餘數(也就是奇數)
sum = sum + arr[i]
最後return sum
陣列filter、reduce方式
1 | function OddSum(arr) { |
arr.filter(num => num % 2 === 1);
利用filter先過濾出奇數,符合num % 2 === 1這個條件的值會留下來,奇數會保留在陣列裡面
oddNumbers.reduce((acc, curr) => acc + curr, 0)
接下來,有了奇數oddNumbers之後,計算陣列裡面的數值
reduce進階用法可以參考MDN
參考資料
Array.prototype.filter()
Array.prototype.reduce()
用Ruby on rails撰寫
迴圈的方式
1 | def sum_of_odd_numbers(arr) |
如果用Ruby on rails撰寫
一樣先給容器sum
迴圈利用each的方法
由於Ruby on rails有.odd這個東西,可以直接檢查是不是奇數
最後做return sum
select、sum的方式
1 | def sum_of_odd_numbers(arr) |
Ruby on rails 有select方法, 在block設定條件{ },符合條件就會留下
條件是odd
去篩選陣列裡面的元素到一個新的陣列裡面
最後做sum,這個也是Ruby on rails本身有的方法