如何用Lodash将全大写数据转换为每个单词首字母大写格式?
解决办法
你的代码问题出在 Lodash 的调用方式上:_.lowerCase.firstUpper 是错误写法,_.lowerCase 是函数不是对象,没法直接访问 firstUpper 属性,而且 Lodash 里首字母大写的方法是 _.upperFirst,不是 firstUpper。
给你两种可行的解决方案:
方案一:用 Lodash 内置的 _.startCase 方法
这个方法可以直接帮你把字符串转成「每个单词首字母大写、其余小写」的格式,不管原字符串是全大写还是其他格式,用法简单:
Cell: e => <div>{_.startCase(e.value)}</div>
比如原字符串是 "SECURITY NAME",_.startCase 会直接返回 "Security Name"。
方案二:手动组合 Lodash 方法实现
如果想自己控制转换步骤,可以按以下逻辑处理:
- 先把全大写字符串转成全小写
- 拆分字符串为单个单词的数组
- 给每个单词的首字母大写
- 把单词数组拼接回完整字符串
代码如下:
Cell: e => <div>{_.words(_.toLower(e.value)).map(word => _.upperFirst(word)).join(' ')}</div>
内容的提问来源于stack exchange,提问作者LearningBeNice
相关产品推荐
相关产品推荐

