繁体   English   中英

查找数组中最长的单词

[英]Finding longest word in array

我目前正在处理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时,您将undefined获得array[i] undefined ,因为那里没有元素。


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

您无法访问array [array.length]。 数组基于0。 将<=更改为<。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM