Kata Practice - Sum Mixed Array (JavaScript)

Kata Practice - Sum Mixed Array (JavaScript)

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

題目

Given an array of integers as strings and numbers, return the sum of the array values as if all were numbers.

Return your answer as a number.

自己的解法

1
2
3
4
5
6
7
8
function sumMix(x){
const numberArray = x.map((e)=>{
return parseInt(e)
})
return sumTotal = numberArray.reduce((accu,current) =>
accu + current , 0
)
}

解題脈絡

先把每一個陣列的值都轉換成 Number 後,在使用 reduce 這個陣列法法將每一個陣列內的值相加,最後在 return 經過相加的值。

其他人的解法

1
2
3
function sumMix(x){
return x.reduce((a, b) => a + +b,0)
}

選擇記錄這個解法的原因

我在這個 function 的上面有多做了一個 string to number 的處理,不過我在 solution 的地方看到一個我之前不知道的運算子 + ,它的功能就是將你指定的值轉變成 number 的型別,所以運用這個 unary operators 就可以將字串轉型別的這個步驟完成了。

觀念釐清

學到一個新的 unary operators 之外,也發現自己的寫法好像比較會逐步地將要處理的步驟都寫出來,所以跟 solution 裡面看到的最佳解比起來貌似都多了一些不必要的步驟 XD
看來要繼續練習一些 kata 囉!

那我們就下次見ʘ‿ʘ

參考資料

評論