我正在尝试解决一个非常简单的难题,即在字符串中找到最长的单词。代码如下:
function find(par) {
let arrayWord = par.split(" ");
let longestWord = "";
for (let i = 0; i <= arrayWord.length; i++) {
if (longestWord.length < arrayWord[i].length) {
longestWord = arrayWord[i]
}
}
return longestWord;
}
find("Find the longest word");
我需要帮助来理解为什么会出现此错误:
未捕获的类型错误:无法读取未定义的属性"长度",查找(:5:47),查找:11:1,查找@VM959:5(匿名)@VM959:11
谢谢您。
2条答案
按热度按时间egdjgwm81#
无法读取属性'length',当它无法找到某个类型的变量时,未定义(在你的例子中是一个字符串)来调用函数length。在你的例子中,arrayWord[i].length对于你检查的最后一个条件不是一个合适的字符串,因为在数组中没有元素arrayWord[arrayWord.length]。这就是为什么arrayWord[i].length在你的最后一次迭代中给你一个错误。只要改变i〈=数组字长到i〈数组字长
编辑:根据RobG的建议进行更改
cwdobuhd2#
只需将条件〈=更改为〈并尝试