Kata Practice - Convert number to reversed array of digits (JavaScript)

Kata Practice - Convert number to reversed array of digits (JavaScript)

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

題目

Given a random non-negative number, you have to return the digits of this number within an array in reverse order.

1
2
3
Input => Output
35231 => [1,3,2,5,3]
0 => [0]

自己的解法

1
2
const digitize = n => 
n.toString().split('').reverse().map(i=>Number(i)) || [0]

解題脈絡

一開始沒注意到型別就直接用了 split() 這個方法,所以後來發現是數字之後就用 toString() 先把數字轉成字串,再使用 split 和 reverse 把順序顛倒過來,最後 test 的時候發現自己忘記把型別轉回數字了,就使用 map 將每一個 string 轉 number 就通過 test 了。

其他人的解法

1
2
3
function digitize(n) {
return String(n).split('').map(Number).reverse()
}

選擇記錄這個解法的原因

看了這個解法之後才發現其實可以使用 String() 這個方法就好了,中間的分隔一樣使用 split() 後使用 map() 將原本的字串轉為數字,不過第一次知道可以直接使用 Numbermap 的參數裡去轉換值。

觀念釐清

練習到現在好像都是在學別人不同的解法,剛開始的時候好像連解法都想不出來,不過後來發現常見的陣列和字串的處理好像就是那些而已 XDDD

那我們就下次見ʘ‿ʘ

評論