I am trying to write a basic javascript function to find the longest word in a string and log it\'s length.
So far I have:
function findLongestWord(
When you use words.push(str.split(" "))
, the array words
looks like
[
["The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"]
]
Another problem is that when you check longest[0].length
for the first iteration in the for
, it is undefined
. Which results in the error
Uncaught TypeError: Cannot read property 'length' of undefined
To solve this, you can use longest
as string
instead of array
. And in the for
, assign the string having the length
greater than the current longest
string to it.
At the end of the function, you can return the longest
string.
Problems/Suggestions:
str.split(' ')
to directly assignment to words
variablelongest
as string
variable instead of array
and initialize
it to empty string, i.e. ''
, to avoid the above errorlongest
with the string in the words
arraywords
array is greater than the longest
, update the longest
.\s+
to split
the string by spacesfunction findLongestWord(str) {
var words = str.split(/\s+/);
var longest = '';
for (var i = 0; i < words.length; i++) {
if (words[i].length > longest.length) {
longest = words[i];
}
}
return longest;
}
var longestWord = findLongestWord('The quick brown fox jumped over the lazy dog');
document.write('Longest Word: "' + longestWord + '"');
document.write('
Longest Word Length: ' + longestWord.length);