Wpis z mikrobloga

#naukaprogramowania
czemu tutaj wyskakuje blad "cannot read property 'length' of undefined"
a gdy zamienie te kl.length w for() na 8, to dziala? chce zeby po wpisaniu obojetnie jakiego zdania wyswietlalo ktore slowo w nim jest najdluzsze
function findLongestWord(str)
{
var word = [];
var kl = str.split(' ');
for (var i = 0; i <= kl.length; i++)
{
word.push(kl[i].length);

}
var largest = Math.max.apply(Math, word);
return largest;

}
findLongestWord("The quick brown fox jumped over the lazy dog");
  • 4
@sebo-sebicki:

for (var i = 0; i <= kl.length; i++)

- kl.length to ilość słów w tablicy, w tym przypadku 9
- i <= kl.length to inaczej i <= 9, czyli 'i mniejsze LUB równe 9'
- zatem ostatni przebieg pętli to i = 9, czyli word.push(kl[9].length)
- kl[9] to tak naprawdę 10 wyraz tablicy, bo iterujemy od 0, a taki nie istnieje, więc masz błąd jaki wkleiłeś.

Zmień <= na