Объясните пожалуйста это решение цикл for of с if javascript
Есть такая javascript задача с решением. Никак не могу понять как вышло решение самое длинное слово из предложений. Я понимаю что в цикл есть условие if (word.length > longestWord.length) то есть длина строк это 1,4,2,5 > 0 так как переменная longestWord -нулевая строка, и потом если условие верно, то переменная longestWord равна переменной Word. Разве не должно выйти все слово в решений в консоле? Ведь все строки больше 0, а выходит только today и straight.
function longestWord(str) {
let words = str.split(" ");
let longestWord = "";
for (let word of words) {
if (word.length > longestWord.length) {
longestWord = word;
}
}
return longestWord;
}
console.log(longestWord("I woke up today"));
console.log(longestWord("I went straight to the beach"));
Ответы (1 шт):
Всё просто: longestWord изначально при первой итерации цикла имеет длину 0 и в цикле стоит условие, которое проверяет, не является ли длинна проверяемой строки word больше чем существующая длинна максимального слова в наборе (в данном случае longestWord). И если длинна longestWord меньше чем найденное слово, просто это слово сохраняется в longestWord (как самое длинное, найденное в данный момент) и в следующей итерации уже идёт проверка с его длинной, а не с 0 как Вы вероятно подумали. Таким образом вычисляется самое длинное слово в наборе.