javascript - 查找数组中最长的单词

标签 javascript arrays string

我目前正在解决 coderbytes 中的问题。我应该创建一个函数,它接受一个字符串并返回字符串中最长的单词(字符串中不会有标点符号,如果有两个单词大小相同,则函数应该返回第一个单词)。我找到了类似的问题Find the longest word/string in an array ,但由于某种原因我的代码无法工作。

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]未定义

最佳答案

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

<小时/>

不相关,但是:您的代码正在成为 The Horror of Implicit Globals 的牺牲品因为你从未声明 array 。添加var前面array = string.split(" ");

关于javascript - 查找数组中最长的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25736656/

相关文章:

javascript - 如何访问对象的属性(另一个对象)?

java - 返回和显示整数数组中的值时出现问题 - Java

php - 将 explode 数组作为键添加到新数组

mysql - Strcmp 不包含 mysql 中的工作数据

c++ - 如果不包含<string.h>,为什么我的程序可以成功编译?

javascript - Ember 模板中的 "Rolling back"错误状态

javascript - AJAX 还是 socket.io?

javascript - 单击按钮时,使用 Jquery 验证至少一行必须移动到自定义表

java - 使用嵌套 For 循环来访问 "Add"两个包含数字值的字符串数组

c - LuaJit FFI 从 C 函数返回字符串到 Lua?