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

JavaScript暴力匹配单词代码while循环条件为假不退出死循环问题求解

问题原因
  • 字符集定义错误:你声明的alphabets字符串遗漏了字母p,实际内容为abcdefghijklmnoqrstuvwxyz,o和q之间缺少p,若目标单词包含p会永远无法匹配到对应字符,无法退出while循环,这也是你截图中没有出现字符p、也没有匹配成功日志的直接原因。
  • 无索引边界校验:你的代码没有对自增变量j做边界判断,当j超过alphabets的总长度后,alphabets[j]会返回undefined,此时text的末尾字符会固定为undefined,永远不可能和目标字符相等,j会持续无限自增,最终进入死循环。
修复方案
  1. 补全字符集,将alphabets的定义修改为包含所有小写字母的版本:
alphabets = "abcdefghijklmnopqrstuvwxyz";
  1. 给while循环增加索引边界校验,避免索引溢出引发死循环:
// 增加j < alphabets.length的判断,防止索引溢出
while(text.charAt(text.length - 1)!=word[i] && j < alphabets.length){
    j++;
    text = text.substring(0, text.length - 1);
    text += alphabets[j];
}
// 可选:增加未匹配到的异常提示
if(j >= alphabets.length){
    console.log(`未找到匹配字符${word[i]},请检查字符集是否包含该字符`);
    break;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:45:04