點燈坊

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

如何使 String 字首變大寫 ?

Sam Xiao's Avatar 2021-06-07

實務上會遇到將 String 的首字變大寫,其餘變小寫,這種常見需求該如何實現呢 ?

Version

Ramda 0.27.1

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

Conclusion

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