返回字符串中最长的单词的长度(number类型)
1 2 3 4
| function findLongestWord(str) { return str.length; } findLongestWord("The quick brown fox jumped over the lazy dog");
|
这里会使用3种方法,首先是FOR loop方法,接着是sort方法,最后是reduce方法。
一、FOR loop
用split方法把字符串拆开,然后逐个遍历,找出最长的单词,并返回长度
1 2 3 4 5 6 7 8 9 10 11
| function findLongestWord(str) { var strSplit = str.split(' '); var longestWord = 0; for(var i = 0; i < strSplit.length; i++){ if(strSplit[i].length > longestWord){ longestWord = strSplit[i].length; } } return longestWord; } findLongestWord("The quick brown fox jumped over the lazy dog");
|
二、sort()
sort() 方法对数组的元素做原地的排序,并返回这个数组。 sort 可能不是稳定的。默认按照字符串的Unicode码位点(code point)排序。
1 2 3 4 5
| function findLongestWord(str) { var longestWord = str.split(' ').sort(function(a, b) { return b.length - a.length; }); return longestWord[0].length; } findLongestWord("The quick brown fox jumped over the lazy dog");
|
三、reduce()
reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值。
reduce()–MDN
1 2 3 4 5 6 7 8
| function findLongestWord(str) { var longestWord = str.split(' ').reduce(function(longest, currentWord) { return currentWord.length > longest.length ? currentWord : longest; }, ""); return longestWord.length; } findLongestWord("The quick brown fox jumped over the lazy dog"); view raw
|
摘自freecodecamp