我已经编写了一个函数,它接收一个句子并计算该句子中最长的单词。
function findLongestWord(str) {
var charArray = str.split(" ");
var wordArray = [];
for(var i = 0; i < charArray.length; i++ ) {
wordArray.push(charArray[i].length);
wordArray.sort();
wordArray.reverse();
}
return wordArray[0];
}
我的函数可以处理如下输入:
findLongestWord("The quick brown fox jumped over the lazy dog");
但是当我传递它时:
findLongestWord("What if we try a super-long word such as otorhinolaryngology")
该函数返回:
4
与其说...19
.sort()
并不像你期望的那样起作用。试着提供一个回调函数来正确排序你的数字。 - GavinwordArray
。在每一步中,只需将当前长度与maxLen
(最初设置为0)进行比较并相应地更新即可。 - georgO(n log n)
的排序操作来查找符合条件的单个元素。 - Yury TarabankowordArray.sort(function(a, b) { return b.length - a.length; });
,这将按降序排序。 - Gavinreturn str.split(' ').reduce((prev, curr) => curr.length > prev ? curr.length : prev, 0);
。 - Gavin