[英]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.