#2 Codewars - Super Duper Easy (8 kyu)

更新 發佈閱讀 1 分鐘

題目

原始題目

建立一個傳回值乘以 50 並增加 6 的函數。如果輸入的值是字串,則應傳回「Error」。

拆解流程

  • 判斷輸入值的型別:這邊使用 typeof 方法判斷型別類型,需要注意該方法回傳的是字串,且皆為小寫
  • 根據題意進行數學運算

撰寫程式

考量到萬一傳入 String 和 Number 以外的型別,會有預期外的狀況,雖然題目並沒有特別定義這塊,但在這邊的型別判斷上,筆者是撰寫成「當傳入值的型別是 Number 」時才進行下一步運算。

function problem(x) {
return typeof x !== "number" ? "Error" : x * 50 + 6;
}

改善程式寫法

有發現到一個蠻特別的方法:Number.isFinite()

該方法會檢查傳入值是否為 Number,且符合以下條件時才會回傳 true:

  • 為 Number 型別
  • 不是 infinity
  • 不是 NaN

範例如下

Number.isFinite(Infinity); // false
Number.isFinite(NaN); // false
Number.isFinite(-Infinity); // false

因此前面的程式可以改寫如下:

function problem(x) {
return Number.isFinite(x) ? x * 50 + 6 : "Error";
}

相較於 isNaN() 方法需要另外判斷空字串,這個方法在判斷上更加全面

今天就介紹到這裡,如果大家有更好的寫法歡迎一起來討論哦~

參考資料


留言
avatar-img
留言分享你的想法!
avatar-img
傑米的沙龍
7會員
30內容數
正在一點一滴學習程式,相信知識量總有一天會匯聚成大海,目前專門研究前端中。
傑米的沙龍的其他內容
2023/10/06
要改變表單元素的樣式其實相當麻煩,有些樣式還不能更改,這篇就來探討如何把它們改成喜歡的模樣吧。
Thumbnail
2023/10/06
要改變表單元素的樣式其實相當麻煩,有些樣式還不能更改,這篇就來探討如何把它們改成喜歡的模樣吧。
Thumbnail
2023/10/05
一個超簡單就能達到滾動視差的套件 - AOS
Thumbnail
2023/10/05
一個超簡單就能達到滾動視差的套件 - AOS
Thumbnail
2023/10/04
切版有許多眉角需要注意,來探討那些經常導致切版結果與設計稿產生落差的原因。 一、文字的高度本體是 line-height:🔍 文字所佔據的高度不是由font-size決定,而是line-hight。一開始練習切版時,都想著設定好字的尺寸和字重就 ok 了吧?殊不知這是造成切出來的網頁與設計
Thumbnail
2023/10/04
切版有許多眉角需要注意,來探討那些經常導致切版結果與設計稿產生落差的原因。 一、文字的高度本體是 line-height:🔍 文字所佔據的高度不是由font-size決定,而是line-hight。一開始練習切版時,都想著設定好字的尺寸和字重就 ok 了吧?殊不知這是造成切出來的網頁與設計
Thumbnail
看更多
你可能也想看
Thumbnail
這題的題目會給我們一個輸入整數,要求我們判斷這個整數是否可以用4^k 的形式來表達?
Thumbnail
這題的題目會給我們一個輸入整數,要求我們判斷這個整數是否可以用4^k 的形式來表達?
Thumbnail
題目:完成解決方案,當第一個參數(String 型別)以第二個參數結尾時(也是 String 型別)返回 true。
Thumbnail
題目:完成解決方案,當第一個參數(String 型別)以第二個參數結尾時(也是 String 型別)返回 true。
Thumbnail
題目:給定一個由 1 和 0 組成的數組,將等效的二進位值轉換為整數。 例如:[0, 0, 0, 1] 被視為 0001,即 1 的二進位表示法。
Thumbnail
題目:給定一個由 1 和 0 組成的數組,將等效的二進位值轉換為整數。 例如:[0, 0, 0, 1] 被視為 0001,即 1 的二進位表示法。
Thumbnail
題目:建立一個函數,該函數返回給定最小 4 個正整數的數組的兩個最低正數的總和。不會傳入浮點數或非正整數。例如,當一個數組像 [19, 5, 42, 2, 77], 輸出應該是 7。 [10, 343445353, 3453445, 3453545353453] 應該回來 3453
Thumbnail
題目:建立一個函數,該函數返回給定最小 4 個正整數的數組的兩個最低正數的總和。不會傳入浮點數或非正整數。例如,當一個數組像 [19, 5, 42, 2, 77], 輸出應該是 7。 [10, 343445353, 3453445, 3453545353453] 應該回來 3453
Thumbnail
題目:你的團隊正在開發一個新的高級文本編輯器,你的任務是實現行號功能。請編寫一個函數,該函數接受一個字符串列表作為輸入,並返回每行字符串前面附帶正確的行號。行號從 1 開始計數。格式為 n: 字符串。請注意冒號和空格之間的間隔。
Thumbnail
題目:你的團隊正在開發一個新的高級文本編輯器,你的任務是實現行號功能。請編寫一個函數,該函數接受一個字符串列表作為輸入,並返回每行字符串前面附帶正確的行號。行號從 1 開始計數。格式為 n: 字符串。請注意冒號和空格之間的間隔。
Thumbnail
題目:如果提供的數字在0-9之間,請以文字形式返回。輸入1、輸出 “One”
Thumbnail
題目:如果提供的數字在0-9之間,請以文字形式返回。輸入1、輸出 “One”
Thumbnail
題目:建立一個傳回值乘以 50 並增加 6 的函數。如果輸入的值是字串,則應傳回「Error」。
Thumbnail
題目:建立一個傳回值乘以 50 並增加 6 的函數。如果輸入的值是字串,則應傳回「Error」。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News