在句子中找出最长的单词,并返回它的长度。
函数的返回值应该是一个数字。
当你完成不了挑战的时候,记得开大招'Read-Search-Ask'。
这是一些对你有帮助的资源:
String.split()
题目中的代码是:
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");
我其实当时的思路也差不多是这样,当时是还没有理解变量作用域的相关内容,所以没有写出答案,这部分应该理解和加强。