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

JavaScript纯for循环统计字符串最长单词长度时最后一个单词统计失效问题

问题根源

你的判断逻辑只有在遍历到空格字符时,才会将当前累计的单词长度和历史最长长度做对比更新,最后一个单词后面没有空格触发这个判断,所以永远不会参与最长长度的统计,对应你遇到的两类异常:

  • 输入为单个无空格的单词时,全程没有触发空格判断,largest始终为初始值0
  • 最长单词在句尾时,该单词的长度不会参与对比,最终返回的是前面所有单词的最长长度
修复方法

只需要在for循环结束后,额外增加一次当前累计单词长度和历史最长值的对比即可,修复后的代码如下:

let lettCount = 0;
let largest = 0;
let spaceCheck = /\s/;

for(let i = 0; i < str.length; i++) {
  if(spaceCheck.test(str[i])) {
    if(lettCount > largest) {
      largest = lettCount;
    }
    lettCount = 0;
  } else {
    lettCount++;
  }
}
// 新增逻辑:对比最后一个单词的长度
if(lettCount > largest) {
  largest = lettCount;
}
return largest;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:15:02