Kata Practice - Sum Arrays (JavaScript)

Kata Practice - Sum Arrays (JavaScript)

這個系列會把自己練習過的 Kata 題目記錄下來,希望除了記錄的性質以外也能夠觀察自己撰寫程式邏輯的進化過程。如果有幸看到這邊的話也可以參考一下,再到 Codewars 的網站註冊一個帳號試著玩看看,自己蠻喜歡整個網站的得分和排行榜設定,會讓人越寫越有成就感喔!

題目

Write a function that takes an array of numbers and returns the sum of the numbers. The numbers can be negative or non-integer. If the array does not contain any numbers then you should return 0.

自己的解法

1
2
3
4
5
6
7
8
9
function sum (numbers) {
"use strict";
if(numbers === []){
return 0
}
else{
return numbers.reduce((accumulator, currentValue) => accumulator + currentValue,0)
}
};

解題脈絡

題目有特別提到當陣列沒有給予任何的 number 時,需要返回 0 這個值。所以我先寫了 if… else 的條件式,如果陣列內沒有給予任何 number 就返回 0 ,剩餘的情況就會是陣列內有給予 number 的狀況,這時候再使用 reduce 這個陣列的方法將陣列內的所有數字做一個加總。

其他人的解法

1
2
3
function sum(numbers) {
return numbers.reduce((a, b) => a + b, 0);
}

選擇記錄這個解法的原因

知道有 reduce 這個方法但沒有用的像解答一樣精簡,reduce 這個 array methods 最後已經會有一個預設值了,這樣代表當我今天傳入這個 sum 函式的 numbers 沒有包含任何的數字時,它就會是預設值 0 了。

觀念釐清

感覺有些東西都多想了一些,所以繞了一圈。不過看了別人的解法就會發現自己多做了一些額外且不必要的處理,這樣代表我還有蠻大的進步空間的!

那我們就下次見ʘ‿ʘ

評論