查找&;返回javascript中最长的单词

查找&;返回javascript中最长的单词,javascript,Javascript,有人能告诉我这里出了什么问题吗?每当我输入这个作为测试用例(console.log(longestWord(“到底发生了什么”))时,我会得到最长的单词“what”…它几乎适用于我测试的所有其他案例…它让我发疯。请帮助。谢谢 function longestWord(string) { var words = string.split(' '); for (var i = 0; i < words.length; i++) { var currentWord = words[i]

有人能告诉我这里出了什么问题吗?每当我输入这个作为测试用例(console.log(longestWord(“到底发生了什么”))时,我会得到最长的单词“what”…它几乎适用于我测试的所有其他案例…它让我发疯。请帮助。谢谢

function longestWord(string) {
var words = string.split(' ');

for (var i = 0; i < words.length; i++) {
    var currentWord = words[i];

    var longestWord = words[0];

    if (longestWord.length < currentWord.length) {
         longestWord = currentWord;
    }
}
return longestWord;
}
函数最长字(字符串){
var words=string.split(“”);
for(var i=0;i
在循环的每次迭代中,您都在重置最长单词。在循环运行之前,设置初始(第一个)最长单词,然后它将正常工作

函数最长字(字符串){
var words=string.split(“”);
//在这里设置初始最长的单词
var longestWord=words[0];
//需要从索引1循环
for(var i=1;iconsole.log(longestWord(“到底发生了什么”);
Jordan已经给了您正确的答案。我们还可以使用sort函数并返回第一个元素,如下所示:

函数最长字(字符串){
var words=string.split(“”);
返回单词.sort(函数(a,b){return b.length-a.length;})[0];
}

log(longestWord(“到底发生了什么”)
我发布了ES6一行程序,以防万一

let longestWord=str=>str.split(“”).sort((a,b)=>b.length-a.length)[0];

console.log(longestWord(“到底发生了什么”);
i=1
开始循环。不需要测试元素0,因为它已经在
longestWord