我目前正在解决 coderbytes 中的问题。我应该创建一个函数,它接受一个字符串并返回字符串中最长的单词(字符串中不会有标点符号,如果有两个单词大小相同,则函数应该返回第一个单词)。我找到了类似的问题Find the longest word/string in an array ,但由于某种原因我的代码无法工作。
var longestword = function(string){
var longest = [];
array = string.split(" ");
for(var i = 0; i <= array.length; i++){
if(array[i].length > longest.length){
longest = array[i];
}
}
console.log(longest)
}
longestword("This isnt workin for some reason")
我收到的错误是TypeError:array[i]未定义
最佳答案
您的条件是i <= array.length
,但数组索引(对于像这样的非稀疏数组)是 0
通过array.length - 1
。只需使用 <
,不是<=
。您将得到undefined
对于 array[i]
当i
是 array.length
因为那里没有元素。
不相关,但是:您的代码正在成为 The Horror of Implicit Globals 的牺牲品因为你从未声明 array
。添加var
前面array = string.split(" ");
关于javascript - 查找数组中最长的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25736656/