TransWikia.com

Объясните пожалуйста это решение цикл for of с if javascript

Stack Overflow на русском Asked on December 19, 2020

Есть такая 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"));

One Answer

Всё просто: longestWord изначально при первой итерации цикла имеет длину 0 и в цикле стоит условие, которое проверяет, не является ли длинна проверяемой строки word больше чем существующая длинна максимального слова в наборе (в данном случае longestWord). И если длинна longestWord меньше чем найденное слово, просто это слово сохраняется в longestWord (как самое длинное, найденное в данный момент) и в следующей итерации уже идёт проверка с его длинной, а не с 0 как Вы вероятно подумали. Таким образом вычисляется самое длинное слово в наборе.

Answered by noname2019 on December 19, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP