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

实现字符串单词首字母大写函数失败:返回原字符串求排查

问题分析与解决

你的代码思路方向是对的——先把字符串拆成单词数组,再处理每个单词首字母,但核心错误是只完成了首字母转大写,却没把修改后的内容替换回原单词,数组里的元素从头到尾没发生变化,所以最后拼接出来自然还是原字符串。

修正后的循环写法

function capitalizer (string) {
    // 用const声明变量,避免全局污染
    const stringArray = string.split(' ');
    for (let i = 0; i < stringArray.length; i++) { 
        const firstLetter = stringArray[i].charAt(0);
        const firstLetterCap = firstLetter.toUpperCase();
        // 将大写首字母拼接原单词剩余部分,更新数组元素
        stringArray[i] = firstLetterCap + stringArray[i].slice(1);
    } 
    return stringArray.join(' ');
} 
console.log(capitalizer('cat on the mat')); // 输出 "Cat On The Mat"

更简洁的map写法

用数组map方法可以简化循环逻辑,代码更紧凑清晰:

function capitalizer(string) {
    return string.split(' ')
        .map(word => word.charAt(0).toUpperCase() + word.slice(1))
        .join(' ');
}

额外注意点

原代码里的stringArray没有用let/const声明,会自动变成全局变量,容易引发意外的变量污染问题,建议始终用声明关键字定义变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:11:27