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

如何将对象数组的键替换下划线为空格并大写每个词首字母?

解决方案

你只需要在替换下划线的基础上,给每个单词的首字母做大写处理就行,直接修改convert函数里的键转换逻辑即可:

function convert(obj) {
  const result = {};
  Object.keys(obj).forEach(function (key) {
    // 先替换下划线为空格,再处理每个单词首字母大写
    const formattedKey = key.replace(/_/g, ' ')
      .split(' ')
      .map(word => word.charAt(0).toUpperCase() + word.slice(1))
      .join(' ');
    result[formattedKey] = obj[key];
  });
  return result;
}

var array = [
  {first_name: 'Mike', last_name: 'Kelly'},
  {first_name: 'Charles', last_name: 'Bronson'},
  {first_name: 'Chuck', last_name: 'Norris'},
];

var result = array.map(function (o) {
    return convert(o);
});

console.log(result);

关键逻辑拆解

  • key.replace(/_/g, ' '):把下划线替换成空格,得到first name这类字符串
  • .split(' '):按空格分割成单词数组,比如['first', 'name']
  • .map(word => word.charAt(0).toUpperCase() + word.slice(1)):遍历每个单词,将首字母转大写,其余字母保持原样,得到['First', 'Name']
  • .join(' '):把数组拼接回完整的格式化为First Name的键名

如果偏好正则一步处理,也可以用下面的写法替换键转换部分:

const formattedKey = key.replace(/_(\w)/g, (_, char) => ' ' + char.toUpperCase())
                        .replace(/^\w/, char => char.toUpperCase());

这个正则的作用是:

  1. 匹配下划线及后续字母,将下划线替换为空格并把后续字母转大写
  2. 单独处理字符串开头的第一个字母,确保它也转为大写

两种方式都能实现需求,选你习惯的写法就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:40:51