簡體   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