Sie sind auf Seite 1von 4

Find the Longest Word With a FOR Loop

The split() method splits a String object into an array of strings by separating the
string into sub strings.

We will need to add an empty space between the parenthesis of


the split()method,

var strSplit = The quick brown fox jumped over the lazy
dog.split( );

which will output an array of separated words:

var strSplit = [The, quick, brown, fox, jumped,


over, the, lazy, dog];

If you dont add the space in the parenthesis, you will have this output:

var strSplit =
[T, h, e, , q, u, i, c, k, , b,
r, o, w, n, , f, o, x, , j, u, m,
p, e, d, , o, v, e, r, , t, h, e,
, l, a, z, y, , d, o, g];

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");
Find the Longest Word With the sort() Method
For this solution, we will use the Array.prototype.sort() method to sort the array
by some ordering criterion and then return the length of the first element of this
array.

The sort() method sorts the elements of an array in place and returns the
array.

In our case, if we just sort the array

var sortArray = [The, quick, brown, fox, jumped,


over, the, lazy, dog].sort();

we will have this output:

var sortArray = [The, brown, dog, fox, jumped, lazy,


over, quick, the];

In Unicode, numbers come before upper case letters, which come before lower
case letters.

We need to sort the elements by some ordering criterion,

[].sort(function(firstElement, secondElement) {
return secondElement.length firstElement.length;
})

*[] is the name of the array

where the length of the second element is compared to the length of the first
element in the array.

function findLongestWord(str) {
// Step 1. Split the string into an array of strings
var strSplit = str.split(' ');
// var strSplit = "The quick brown fox jumped over the
lazy dog".split(' ');

// var strSplit = ["The", "quick", "brown", "fox",


"jumped", "over", "the", "lazy", "dog"];

// Step 2. Sort the elements in the array


var longestWord = strSplit.sort(function(a, b) {
return b.length - a.length;
});

/* Sorting process
a b b.length a.length var longestWord
"The" "quick" 5 3 ["quick",
"The"]
"quick" "brown" 5 5 ["quick",
"brown", "The"]
"brown" "fox" 3 5 ["quick",
"brown", "The", "fox"]
"fox" "jumped" 6 3 ["jumped",
quick", "brown", "The", "fox"]
"jumped" "over" 4 6 ["jumped",
quick", "brown", "over", "The", "fox"]
"over" "the" 3 4 ["jumped",
quick", "brown", "over", "The", "fox", "the"]
"the" "lazy" 4 3 ["jumped",
quick", "brown", "over", "lazy", "The", "fox", "the"]
"lazy" "dog" 3 4 ["jumped",
quick", "brown", "over", "lazy", "The", "fox", "the", "dog"]
*/

// Step 3. Return the length of the first element of the


array

return longestWord[0].length;

// var longestWord = ["jumped", "quick", "brown", "over",


"lazy", "The", "fox", "the", "dog"];

// longestWord[0]="jumped" => jumped".length => 6


}

findLongestWord("The quick brown fox jumped over the lazy


dog");
Find the Longest Word With the reduce() Method

The reduce() method applies a function against an accumulator and each value
of the array (from left-to-right) to reduce it to a single value.

reduce() executes a callback function once for each element present in the
array.

You can provide an initial value as the second argument to reduce, here we will
add an empty string .

[].reduce(function(previousValue, currentValue) {...}, );

*[] is the name of the array

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");

Das könnte Ihnen auch gefallen