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

如何在JavaScript中reverse()后交换每个单词首尾字母的大小写?

问题分析与解决方案

原代码仅处理了反转后单词最后一个字符的小写转换,完全忽略了反转后第一个字符的大小写切换,逻辑冗余且无法实现“交换首尾字母大小写”的需求。

修正后的代码

let reverseWords = str => {
    console.log(`Input: ${str}`);
    // 分割单词并过滤空字符串(处理连续空格情况)
    let words = str.split(" ").filter(word => word.length > 0).map(word => {
        let chars = word.split("").reverse();
        const len = chars.length;
        // 仅处理长度大于1的单词,单字符单词无需切换首尾(首尾为同一字符)
        if (len > 1) {
            // 切换首字符大小写
            chars[0] = chars[0] === chars[0].toUpperCase() 
                ? chars[0].toLowerCase() 
                : chars[0].toUpperCase();
            // 切换尾字符大小写
            chars[len - 1] = chars[len - 1] === chars[len - 1].toUpperCase() 
                ? chars[len - 1].toLowerCase() 
                : chars[len - 1].toUpperCase();
        }
        return chars.join('');
    });
    return words.join(' ');
}

console.log(`Output: ${reverseWords("I am Firdaus")}`); // 输出:I ma Suadrif

关键改进点

  • 补全反转后首字符的大小写切换逻辑,实现真正的“首尾大小写交换”
  • 增加空字符串过滤,避免连续空格导致的无效处理
  • 仅对长度大于1的单词执行转换,跳过单字符单词的无意义操作
  • 用简洁的三元表达式替代冗余条件判断,提升代码可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:15:27