使用javascript查找字符串中最长的单词

Gab*_*iel 0 javascript string

我试图在字符串中找到最长的单词,但它会不断返回第一个单词的长度.有任何想法吗?

这是我的代码:

function findLongestWord(str) {
  var words = str.split(' ');
  var longest = 0;

  for (var i=0;i<words.length;i++) {
    if (words[i].length > longest) {
      longest = words[i].length;
    }

    return longest;
  }
}
Run Code Online (Sandbox Code Playgroud)

mcc*_*inz 9

您的return语句应该在for循环之外.它只执行第一个循环然后退出.


小智 5

这是我是如何做到的(我附上了一个评论的长版和一个未评论的短版):

 /***************
 * LONG VERSION *
 ***************/
function findLongestWord(str) {
  // Create an array out of the string
  var arr = str.split(' ');

  // Sort the array from shortest to largest string
  arr = arr.sort(function(a, b) {
    return a.length-b.length;
  });
  // The longest string is now at the end of the array

  // Get the length of the longest string in the Array
  var longestString = arr.pop().length;

  // return the lenght of the longest string
  return longestString;
}

/*****************
 * SHORT VERSION *
 ****************/
function findLongestWord(str) {
  return str
    .split(' ')
    .sort(function(a, b) { return a.length-b.length; }) 
    .pop().length;
}
Run Code Online (Sandbox Code Playgroud)