實務上會遇到將 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,然後轉成小寫
Conclusion
- String 可視為 Char Array,
head()
與tail()
為 FP 常見處理 Array 技巧,最後再使用concat()
合併