1
resposta

Minha solução para o contador

Olá pessoal! Apesar de não ser a solução mais ótima, acho que é bem intuitiva Como quando a gnt observa no terminal, vemos "" contando como uma palavra, eu achei melhor simplesmente filtrar os "" do array de palavras Sou novo no JS e não sei fazer uma filtragem mais elaborada e que seja mais eficiente do que o bom e velho if, então a implementação constou de observar se a string de cada iteração do for não for um "", adicioná-la à variável individualWords, que é o array que -- naturalmente -- irá conter palavras individuais

function countWordsChars(originalPhrase){
    let phrase = originalPhrase.split(' ');
    let individualWords = [];

    // Avoid counting "" as a word
    for (let counter=0; counter<phrase.length; counter++){
        if (phrase[counter] !== "")
            individualWords.push(phrase[counter]);
    }

    const wordsCount = individualWords.length;
    const charsCount = originalPhrase.length;
    return [wordsCount, charsCount];
}

Dessa forma, quando não temos nada no textarea, tanto palavras quanto caracteres são contados como zero, além de serem contadas corretamente a cada 'keyup' (usei 'keyup' como evento para testar alternativas ao 'input')

1 resposta

Olá Phillip, tudo bem?

Meus parabéns por buscar sua maneira de desenvolver o que foi proposto em aula! Quando estamos programando, existem várias possibilidades de se resolver um problema e é muito bom que você já esteja pensando qual será a melhor solução. Nesse caso, não há nada de errado em usar o bom e velho if.

Caso tenha alguma dúvida, me coloco à disposição!

Parabéns pela dedicação e bons estudos!