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('<br />Longest Word Length: ' + longestWord.length);
if (words[i].length > longest[0].length)
You will be getting error in above line. As at first time, it is empty.