JavaScript:查找字符串中最长的单词

14
function longestWord(string) {
    var str = string.split(" ");
    var longest = 0;
    var word = null;
    for (var i = 0; i < str.length - 1; i++) {
        if (longest < str[i].length) {
            longest = str[i].length;
            word = str[i];
        }
    }
    return word;
}
当我调用longestWord("傲慢与偏见")时,它返回的是'傲慢'而不是最长单词'偏见'...为什么? 我查看了一些类似的问题,但解决方案看起来很像我的代码。

8
不要将字符串数组命名为"str"。 - aaronman
33个回答

0
使用sort()方法,可以按照某种排序标准对数组元素进行排序,然后返回该数组的第一个元素的长度,从而得到最长的单词。
function longest(string){
    var longestWord = string.split(' ').sort(function(a,b){
        return b.length - a.length;
    });
    return longestWord[0];
}

-1
function longestWord(string) {
   var str = string.split(" ");
   var longest = 0;
   var word = null;
   for (var i=0; i < str.length-1; i++) {
      word = longest < str[i].length ? str[i].length : longest;
         word = str[i];
   }
   return word;
   }
   longestWord('I love Python ')

这个问题和那个问题一样。挑战不在于提供所有可能的解决方案,而在于帮助 OP 纠正他的错误代码。 - Kami Kaze

-2

请检查以下内容是否有帮助:

function longestWord(string){
  var str = string.split(" ");
  var longest = 0;
  var word = null;
  for(var i=0; i < str.length; i++){
    if(longest < str[i].length){
      longest=str[i].length;
      word=str[i];
    }
  }
  return word;
}

2
这回答了一个旧问题(2013年),当已经有一个被接受的答案与你所说的相同时。 - Sebastian Mendez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接