You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript对象数组指定字段首字母大写实现异常求助

问题:如何将对象数组中Name字段首字母大写并保留完整字符串?

我的对象数组如下:

"response":[
    {
    "No":13,
    "Name":"sadfasf asdfafddf",
    "Email":"asdfasfd@asdfasfd.com"
    },
    {
    "No":16,
    "Name":"ddfdf",
    "Email":"asdfasfd@asdfasfd.com"
    },
    {
    "No":15,
    "Name":"ddfdf",
    "Email":"Test@gmail.com"
    }
]

我尝试将Name字段首字母转为大写,编写了如下代码:

this.List.forEach( function(elm) {
             elm.Name=elm.Name.charAt(0).toUpperCase(); 
 });

但执行后仅显示首字母,无法得到完整的首字母大写后的字符串,请问该如何解决?


解决方案

你当前的代码只提取了首字母并转大写,没有拼接原字符串的剩余部分,所以只会保留首字母。需要把首字母大写后,拼接上原字符串从索引1开始的剩余内容:

单个单词首字母大写

this.List.forEach(function(elm) {
  // 处理空字符串场景,避免报错
  if (elm.Name) {
    elm.Name = elm.Name.charAt(0).toUpperCase() + elm.Name.slice(1);
  }
});

多单词(空格分隔)首字母大写

如果需要处理类似sadfasf asdfafddf这种包含多个单词的Name,让每个单词首字母都大写,可以用以下方式:

this.List.forEach(function(elm) {
  if (elm.Name) {
    elm.Name = elm.Name.split(' ')
      .map(word => {
        // 处理空单词(连续空格的情况)
        return word ? word.charAt(0).toUpperCase() + word.slice(1) : word;
      })
      .join(' ');
  }
});

原理说明

  • charAt(0).toUpperCase():获取字符串第一个字符并转为大写
  • slice(1):提取字符串从索引1到末尾的所有字符,和首字母拼接后就是完整的首字母大写字符串
  • 多单词场景通过split(' ')拆分单词,逐个处理后用join(' ')重新拼接成完整字符串

内容的提问来源于stack exchange,提问作者user3653474

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:05:18