正在查找数组中最长的单词

Finding longest word in array

本文关键字:单词 查找 数组      更新时间:2023-09-26

我目前正在处理coderbytes中的一个问题。我应该创建一个函数,它接收一个字符串并返回字符串中最长的单词(字符串中不会有标点符号,如果有两个大小相同的单词,函数应该返回第一个)。我找到了一个类似的问题"查找数组中最长的单词/字符串",但由于某种原因,我的代码无法工作。

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] is undefined

您的条件是i <= array.length,但数组索引(对于像这样的非稀疏数组)是0array.length - 1。只使用<,而不是<=。当iarray.length时,array[i]得到undefined,因为那里没有元素。


无关,但是:您的代码正成为隐式全局变量的恐怖的牺牲品,因为您从未声明array。在array = string.split(" "); 前面添加一个var

您不能访问array[array.length]。数组是基于0的。更改<=到<。