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

JavaScript查找最长单词的代码报length属性undefined错误是什么原因?

报错原因分析

你遇到的TypeError: Cannot read properties of undefined (reading 'length')错误完全是由for循环的终止条件写错导致的,具体问题如下:

  • 终止条件中使用的terminal变量未做任何声明定义,属于拼写失误,你原本的遍历逻辑应该以循环变量i作为判断依据
  • 比较逻辑完全颠倒:遍历数组的正确终止条件是判断循环变量i小于数组长度,即i < words.length,你写的words.length <= terminal和正确逻辑完全不符

上述错误会导致循环不会正常停止,循环变量i会持续累加,最终超过words数组的最大索引,此时words[i]返回undefined,尝试读取undefined的length属性就触发了对应的类型错误。

修复后代码
function findLongestWordLength(str) {
  let words = str.split(" ");
  let longword = words[0];
  // 仅修正循环条件即可正常运行
  for(let i = 0; i < words.length; i++){
    if(words[i].length >= longword.length){
      longword = words[i];
    }
  }
  return longword.length;
}

// 测试用例运行返回6,对应最长单词jumped
console.log(findLongestWordLength("The quick brown fox jumped over the lazy dog"));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:15:02