FCC 255 - 找出最长单词

在句子中找出最长的单词,并返回它的长度。
函数的返回值应该是一个数字。
当你完成不了挑战的时候,记得开大招'Read-Search-Ask'。

这是一些对你有帮助的资源:
String.split()

String.length

题目中的代码是:

function findLongestWord(str) {
  // 请把你的代码写在这里
  return str;
}

findLongestWord("The quick brown fox jumped over the lazy dog");

这题的思路很明确,先把句子中的单词按照空格用.split()方法进行分割存放在新的数组中,然后返回数组种长度最长的单词。

刚开始我想用max方法或者两两比较的方法,都失败了。还是上网搜到了答案,恍然大悟。
答案如下:

function findLongestWord(str) {
  // 请把你的代码写在这里
  var arr=str.split(" ");//用空格分割每一个单词并存入arr数组中
  var arr1=arr.sort(function(a,b){  //将数组按照每个单词的长度进行增序排序
        return a.length-b.length;
  });  
  return arr1[arr1.length-1].length; //返回最后一个单词的长度,也就是最长的单词的长度
}
findLongestWord("The quick brown fox jumped over the lazy dog");

虽然sort()函数前几天也学了,但是真正用到的时候却没有想到它,还是要多锻炼。

还发现另一个答案,和我的思路差不多:

function findLongestWord(str) {
        var s = str.split([" "]);
        var max=0;
        var t=0;
        for (var i = 0; i < s.length; i++) {
            t=s[i].length
        if(t>max){
           max= t;
        }
  }
        return max;
}
    findLongestWord("The quick brown fox jumped over the lazy dog");

我其实当时的思路也差不多是这样,当时是还没有理解变量作用域的相关内容,所以没有写出答案,这部分应该理解和加强。

你可能感兴趣的:(FCC 255 - 找出最长单词)