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

如何实现数组中姓名字符串的名和姓首字母大写?

解决数组中姓名首字母大写、其余小写的问题

咱们先看看你原来的函数为啥没实现预期效果:

  • 你先把整个数组转成字符串,这会让所有姓名连在一起,直接丢失了数组每个元素的独立性
  • split('')是把字符串拆成单个字符,而不是按单词拆分,后续的map处理的是单个字符,这完全搞错了处理对象
  • 最后split()不带参数的操作也没法把混乱的字符串还原成正确的姓名数组

正确的实现思路

  1. 遍历输入数组的每一个姓名元素
  2. 对每个姓名,先统一转成全小写,避免原字符串中随机大写的干扰
  3. 把姓名按空格拆分成名和姓两个单词(假设姓名都是“名 姓”的格式)
  4. 对每个单词,将首字母转为大写,剩下的字母保持小写
  5. 把处理好的名和姓拼接回完整姓名
  6. 把所有处理后的姓名收集起来,返回新数组

正确代码实现

const namesHardest = ['emIly sMith', 'angeliNA Jolie', 'braD piTt'];

function capitalizeNames(peopleArray) {
  // 遍历每个姓名
  return peopleArray.map(name => {
    // 转成全小写后按空格拆分成单词
    return name.toLowerCase().split(' ').map(word => {
      // 单词首字母大写 + 剩余部分
      return word.charAt(0).toUpperCase() + word.slice(1);
    }).join(' '); // 把处理后的单词拼接回姓名
  });
}

const capitalizedNames = capitalizeNames(namesHardest);
console.log(capitalizedNames); // 输出: ["Emily Smith", "Angelina Jolie", "Brad Pitt"]

这段代码里用了两次map:第一次遍历数组中的每个姓名,第二次遍历每个姓名拆分后的单词,这样就能精准处理每个单词的首字母大写需求啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:01:12