Kata Practice - Count by X (JavaScript)

Kata Practice - Count by X (JavaScript)

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

題目

Create a function with two arguments that will return an array of the first n multiples of x.

Assume both the given number and the number of times to count will be positive numbers greater than 0.

Return the results as an array or list ( depending on language ).

Example
1
2
countBy(1,10) === [1,2,3,4,5,6,7,8,9,10]
countBy(2,5) === [2,4,6,8,10]

自己的解法

1
2
3
4
5
6
7
8
9
10
const countBy = (x, n) => {
let z = []
for(let i=1 ; i<= n ; i++){
z.push(i)
}
const answer = z.map(e => {
return e * x;
});
return answer;
}

解題脈絡

一開始先想到要先把對應數量的值 push 到陣列裡,再將每一個值都乘上參數就可以得到結果了,所以先想到用 for 迴圈再搭配 map 乘上參數來解決。

其他人的解法

1
2
3
4
5
6
7
function countBy(x, n) {
var z = [];
for (i = 1; i <= n; i++) {
z.push(x * i);
}
return z;
}

選擇記錄這個解法的原因

其實可以直接在 push 的地方乘就好了,不需要特別在用一個 map 來處理。

觀念釐清

感覺還是會寫出一些多此一舉的操作,雖然寫的時候可能就知道自己寫了多餘的 code ,但是當下其實也不知道要怎麼精簡,看來經驗值還是很不夠啊 QQ

那我們就下次見ʘ‿ʘ

評論