[英]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
,但是數組索引(對於像這樣的非稀疏數組)為0
到array.length - 1
。 只需使用<
,不使用<=
。 當i
為array.length
時,您將undefined
獲得array[i]
undefined
,因為那里沒有元素。
無關,但是:因為您從未聲明array
,所以您的代碼成為“隱式全局恐怖”的犧牲品。 添加var
前面array = string.split(" ");
您無法訪問array [array.length]。 數組基於0。 將<=更改為<。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.