點燈坊

失くすものさえない今が強くなるチャンスよ

使用 capitalize() 將 String 字首變大寫

Sam Xiao's Avatar 2020-08-24

將 String 字首變大寫為常見功能,FP 有其特殊實現方式,由於經常使用,已經收錄在 Wink-fp。

Version

Wink-fp 1.27.9

capitalize()

import { compose, head, toUpper, tail, toLower, converge, concat } from 'ramda'

let capitalize = converge(
  concat, [
    compose(toUpper, head),
    compose(toLower, tail)
  ]
)

capitalize('sAm') // ?

使用 converge() 組合 capitalize()

  • concat:將兩 String 合併
  • compose(toUpper, head):先取出首字,然後轉成大寫
  • compose(toLower, tail):先取出首字以外 String,然後轉成小寫

capitalize000

Wink-fp

import { capitalize } from 'wink-fp'

capitalize('sAm') // ?

Wink-fp 已經內建 capitalize() 可直接使用。

capitalize()
String -> String
將 String 字首變大寫

String:data 為 String

String:將 String 字首變大寫回傳

capitalize001

Conclusion

  • String 可視為 Char Array,head()tail() 為 FP 常見處理 Array 技巧,最後再使用 concat() 合併