<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Felipe Motta - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Aprenda a codificar - de graça. Tutoriais de programação em Python, JavaScript, Linux e muito mais. ]]>
        </description>
        <link>https://www.freecodecamp.org/portuguese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Felipe Motta - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/portuguese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 02 Jun 2026 10:53:02 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/portuguese/news/author/felipe/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Três maneiras de capitalizar a primeira letra de cada palavra de uma frase em JavaScript ]]>
                </title>
                <description>
                    <![CDATA[ Este artigo se baseia no script de algoritmos básicos do Free Code Camp chamado  "Capitalizar a primeira letra de cada palavra de uma frase [https://www.freecodecamp.org/portuguese/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence] ". Nesse algoritmo, queremos mudar uma string (texto) para que tenha sempre uma letra maiúscula no início de cada palavra. Neste artigo, vou explicar ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/tres-maneiras-de-capitalizar-a-primeira-letra-de-cada-palavra-em-uma-frase-em-javascript/</link>
                <guid isPermaLink="false">634c28ae95867606153fec2a</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Felipe Motta ]]>
                </dc:creator>
                <pubDate>Thu, 02 Mar 2023 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2023/02/1_YPdTg5Gx1FX66jSc_uwwlQ.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/three-ways-to-title-case-a-sentence-in-javascript-676a9175eb27/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Three Ways to Title Case a Sentence in JavaScript</a>
      </p><p><em>Este artigo se baseia no script de algoritmos básicos do Free Code Camp chamado<em> </em>"</em><a href="https://www.freecodecamp.org/portuguese/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence">Capitalizar a primeira letra de cada palavra de uma frase</a><em>"<em>.</em></em></p><p><strong>Nesse algoritmo</strong>, queremos mudar uma string (texto) para que tenha sempre uma letra maiúscula no início de cada palavra.</p><p>Neste artigo, vou explicar três abordagens: a primeira com um laço <em>for</em>, a segunda usando o método <em>map()</em> e a terceira usando o método <em>replace()</em>.</p><h4 id="desafio-do-algoritmo"><strong><strong><strong>Desafio do algoritmo</strong></strong></strong></h4><blockquote>Retorne a string fornecida com a primeira letra de cada palavra em letra maiúscula. Certifique-se de que o resto da palavra esteja em letras minúsculas.<br><br>Para o propósito desse exercício, você também deve capitalizar as palavras conectoras como the e of.</blockquote><h4 id="casos-de-teste-fornecido"><strong>Casos de teste fornecido</strong></h4><ul><li><strong><strong><em><em>titleCase(</em></em></strong><em>"</em><strong><em><em>I’m a little tea pot</em></em></strong><em>"</em><strong><em><em>)</em></em></strong></strong> deve retornar uma string.</li><li><strong><strong><em><em>titleCase(</em></em></strong><em>"</em><strong><em><em>I’m a little tea pot</em></em></strong><em>"</em><strong><em><em>)</em></em></strong></strong> deve retornar "I'm A Little Tea Pot".</li><li><strong><strong><em><em>titleCase(</em></em></strong><em>"</em><strong><em><em>sHoRt AnD sToUt</em></em></strong><em>"</em><strong><em><em>) </em></em></strong></strong>deve retornar "Short And Stout".</li><li><strong><strong><em><em>titleCase(</em></em></strong><em>"</em><strong><em><em>HERE IS MY HANDLE HERE IS MY SPOUT</em></em></strong><em>"</em><strong><em><em>)</em></em></strong></strong> deve retornar "Here Is My Handle Here Is My Spout".</li></ul><h3 id="1-capitalize-cada-palavra-de-uma-frase-com-um-la-o-for"><strong>1. Capitalize cada palavra de uma frase com um laço FOR</strong></h3><p>Para esta solução, usaremos o método String.prototype.toLowerCase(), o método String.prototype.split(), o método String.prototype.charAt(), o método String.prototype.slice() e o método Array.prototype.join().</p><ul><li>O método <strong><strong><strong><strong>toLowerCase()</strong></strong></strong></strong> retornará o valor da string que o chama convertido em letras minúsculas.</li><li>O método<strong> split()</strong> divide um objeto de string em um array de strings separando a string em substrings.</li><li>O método <strong>charAt()</strong> retorna o caractere especificado de uma string.</li><li>O método <strong>slice()</strong> extrai uma parte de uma string e a retorna como uma nova string.</li><li>O método <strong><strong><strong><strong>join()</strong></strong></strong></strong> reúne todos os elementos do array em uma string.</li></ul><p>Nós vamos precisar acrescentar um espaço vazio entre os parênteses do método <strong>split(),</strong></p><pre><code>var strSplit = "I'm a little tea pot".split(' ');</code></pre><p>que produzirá um conjunto de palavras separadas:</p><pre><code>var strSplit = ["I'm", "a", "little", "tea", "pot"];</code></pre><p>Se você não adicionar o espaço entre parênteses, você terá este resultado:</p><pre><code>var strSplit = ["I", "'", "m", " ", "a", " ", "l", "i", "t", "t", "l", "e", " ", "t", "e", "a", " ", "p", "o", "t"];</code></pre><p>Então, vamos concatenar</p><pre><code>str[i].charAt(0).toUpperCase()</code></pre><p>— que transformará em maiúsculo o caractere de índice 0 (zero) da string atual no laço FOR —</p><p>e</p><pre><code>str[i].slice(1)</code></pre><p>— que extrairá os caracteres do índice 1 até o final da string.</p><p>Vamos colocar toda a string em letras minúsculas para fins de normalização.</p><h4 id="com-coment-rios-"><strong>Com </strong>comentários<strong>:</strong></h4><pre><code class="language-js">
function titleCase(str) {
  // Passo 1. Converta a string em minúsculas
  str = str.toLowerCase();
  // str = "I'm a little tea pot".toLowerCase();
  // str = "i'm a little tea pot";
  
  // Passo 2. Divida a string em um array de strings
  str = str.split(' ');
  // str = "i'm a little tea pot".split(' ');
  // str = ["i'm", "a", "little", "tea", "pot"];
  
  // Passo 3. Crie o laço FOR
  for (var i = 0; i &lt; str.length; i++) {
    str[i] = str[i].charAt(0).toUpperCase() + str[i].slice(1); 
  /* Aqui str.length = 5
      1ª iteração: str[0] = str[0].charAt(0).toUpperCase() + str[0].slice(1);
                   str[0] = "i'm".charAt(0).toUpperCase()  + "i'm".slice(1);
                   str[0] = "I"                            + "'m";
                   str[0] = "I'm";
      2ª iteração: str[1] = str[1].charAt(0).toUpperCase() + str[1].slice(1);
                   str[1] = "a".charAt(0).toUpperCase()    + "a".slice(1);
                   str[1] = "A"                            + "";
                   str[1] = "A";
      3ª iteração: str[2] = str[2].charAt(0).toUpperCase()   + str[2].slice(1);
                   str[2] = "little".charAt(0).toUpperCase() +"little".slice(1);
                   str[2] = "L"                              + "ittle";
                   str[2] = "Little";
      4ª iteração: str[3] = str[3].charAt(0).toUpperCase() + str[3].slice(1);
                   str[3] = "tea".charAt(0).toUpperCase()  + "tea".slice(1);
                   str[3] = "T"                            + "ea";
                   str[3] = "Tea";
      5ª iteração: str[4] = str[4].charAt(0).toUpperCase() + str[4].slice(1);
                   str[4] = "pot".charAt(0).toUpperCase() + "pot".slice(1);
                   str[4] = "P"                           + "ot";
                   str[4] = "Pot";                                                         
    Fim do laço FOR */
  }
  
  // Passo 4. Retorne o resultado
  return str.join(' '); // ["I'm", "A", "Little", "Tea", "Pot"].join(' ') =&gt; "I'm A Little Tea Pot"
}

titleCase("I'm a little tea pot");</code></pre><h4 id="sem-coment-rios-"><strong>Sem </strong>comentários<strong>:</strong></h4><pre><code class="language-js">function titleCase(str) {
  str = str.toLowerCase().split(' ');
  for (var i = 0; i &lt; str.length; i++) {
    str[i] = str[i].charAt(0).toUpperCase() + str[i].slice(1); 
  }
  return str.join(' ');
}
titleCase("I'm a little tea pot");</code></pre><h3 id="2-capitalize-cada-palavra-de-uma-frase-com-o-m-todo-map-"><strong>2. Capitalize cada palavra de uma frase com o </strong>método <strong>map()</strong></h3><p>Nesta solução, usaremos o método Array.prototype.map().</p><ul><li>O método <strong><strong><strong><strong>map()</strong></strong></strong></strong> cria um array com os resultados de chamar uma função dada em cada elemento desse array. Ao usar <em><em>map</em></em>, chamamos uma função de <em>callback </em>fornecida uma vez para cada elemento do array, em sequência, e criamos outro array a partir dos resultados.</li></ul><p>Vamos colocar as letras em minúsculas e dividir a string, como visto no exemplo anterior antes de aplicar o método <em>map()</em>.</p><p>Ao invés de usar um laço FOR, aplicaremos o método <em>map()</em> como condição na mesma concatenação do exemplo anterior.</p><pre><code>(word.charAt(0).toUpperCase() + word.slice(1));</code></pre><h4 id="com-coment-rios--1"><strong>Com </strong>comentários<strong>:</strong></h4><pre><code class="language-js">
function titleCase(str) {
  // Passo 1. Converta a string em minúsculas
  str = str.toLowerCase() // str = "i'm a little tea pot";
  
  // Passo 2. Divida a string em um array de strings
           .split(' ') // str = ["i'm", "a", "little", "tea", "pot"];
         
  // Passo 3. Itere o array usando o Map
           .map(function(word) {
    return (word.charAt(0).toUpperCase() + word.slice(1));
    /* Processo do Map
    1ª palavra: "i'm"    =&gt; (word.charAt(0).toUpperCase() + word.slice(1));
                          "i'm".charAt(0).toUpperCase()   + "i'm".slice(1);
                                "I"                       +     "'m";
                          return "I'm";
    2ª palavra: "a"      =&gt; (word.charAt(0).toUpperCase() + word.slice(1));
                          "a".charAt(0).toUpperCase()     + "".slice(1);
                                "A"                       +     "";
                          return "A";
    3ª palavra: "little" =&gt; (word.charAt(0).toUpperCase()  + word.slice(1));
                          "little".charAt(0).toUpperCase() + "little".slice(1);
                                "L"                        +     "ittle";
                          return "Little";
    4ª palavra: "tea"    =&gt; (word.charAt(0).toUpperCase() + word.slice(1));
                          "tea".charAt(0).toUpperCase()   + "tea".slice(1);
                                "T"                       +     "ea";
                          return "Tea";
    5ª palavra: "pot"    =&gt; (word.charAt(0).toUpperCase() + word.slice(1));
                          "pot".charAt(0).toUpperCase()   + "pot".slice(1);
                                "P"                       +     "ot";
                          return "Pot";                                                        
    Fim do método map() */
});

 // Passo 4. Retorne o resultado
 return str.join(' '); // ["I'm", "A", "Little", "Tea", "Pot"].join(' ') =&gt; "I'm A Little Tea Pot"
}

titleCase("I'm a little tea pot");</code></pre><h4 id="sem-coment-rios--1"><strong>Sem </strong>comentários<strong>:</strong></h4><pre><code class="language-js">function titleCase(str) {
  return str.toLowerCase().split(' ').map(function(word) {
    return (word.charAt(0).toUpperCase() + word.slice(1));
  }).join(' ');
}
titleCase("I'm a little tea pot");</code></pre><h3 id="3-capitalize-cada-palavra-de-uma-frase-com-os-m-todos-map-e-replace-"><strong>3. Capitalize cada palavra de uma frase com os </strong>método<strong>s map() e replace()</strong></h3><p>Para esta solução, continuaremos usando o método Array.prototype.map() e adicionaremos o método String.prototype.replace().</p><ul><li>O método <strong><strong><strong><strong>replace()</strong></strong></strong></strong> retorna uma nova string com algumas ou todas as correspondências de um padrão (em inglês, pattern) substituídas por aquilo que sugerirmos.</li></ul><p>No nosso caso, o padrão (do inglês, <em>pattern</em>) para o método replace() será uma string que vai ser substituída (pelo segundo argumento do método) e que será tratada como uma string literal. Também podemos usar uma <strong>expressão regular</strong> como padrão para resolver esse algoritmo.</p><p>Vamos colocar as letras em minúsculas e dividir a string como visto no primeiro exemplo antes de aplicar o método <em>map()</em>.</p><h4 id="com-coment-rios--2"><strong>Com </strong>comentários<strong>:</strong></h4><pre><code class="language-js">
function titleCase(str) {
  // Passo 1. Converta a string em minúsculas
  str = str.toLowerCase() // str = "i'm a little tea pot";
  
  // Passo 2. Divida a string em um array de strings
           .split(' ') // str = ["i'm", "a", "little", "tea", "pot"];
         
  // Passo 3. Itere o array usando o Map
           .map(function(word) {
    return word.replace(word[0], word[0].toUpperCase());
    /* Processo Map
    1ª palavra: "i'm" =&gt; word.replace(word[0], word[0].toUpperCase());
                       "i'm".replace("i", "I");
                       return word =&gt; "I'm"
    2ª palavra: "a" =&gt; word.replace(word[0], word[0].toUpperCase());
                     "a".replace("a", "A");
                      return word =&gt; "A"
    3ª palavra: "little" =&gt; word.replace(word[0], word[0].toUpperCase());
                          "little".replace("l", "L");
                          return word =&gt; "Little"
    4ª palavra: "tea" =&gt; word.replace(word[0], word[0].toUpperCase());
                       "tea".replace("t", "T");
                       return word =&gt; "Tea"
    5ª palavra: "pot" =&gt; word.replace(word[0], word[0].toUpperCase());
                       "pot".replace("p", "P");
                       return word =&gt; "Pot"                                                        
    Fim do método map() */
});

 // Passo 4. Retorne o resultado
 return str.join(' '); // ["I'm", "A", "Little", "Tea", "Pot"].join(' ') =&gt; "I'm A Little Tea Pot"
}

titleCase("I'm a little tea pot");</code></pre><h4 id="sem-coment-rios--2"><strong>Sem </strong>comentários<strong>:</strong></h4><pre><code class="language-js">function titleCase(str) {
  return str.toLowerCase().split(' ').map(function(word) {
    return word.replace(word[0], word[0].toUpperCase());
  }).join(' ');
}
titleCase("I'm a little tea pot");</code></pre><p>Espero que tenha achado este artigo útil. Ele é parte da minha série de artigos "Como resolver os algoritmos do freeCodeCamp", que trata dos desafios de algoritmos básicos em JavaScript do freeCodeCamp. Nessa série, proponho várias soluções passo a passo mostrando o que acontece internamente em cada um dos algoritmos dos desafios.</p><p><a href="https://www.freecodecamp.org/news/three-ways-to-repeat-a-string-in-javascript-2a9053b93a2d/"><strong><strong><strong><strong>T</strong></strong>rês maneiras de repetir uma <strong><strong>string </strong></strong>em<strong><strong> JavaScript</strong></strong></strong></strong></a><br><a href="https://www.freecodecamp.org/news/three-ways-to-repeat-a-string-in-javascript-2a9053b93a2d/"><em><em>Neste artigo<em><em>, </em></em>eu explico como resolver o desafio<em><em> </em></em>"<em><em>Repe</em></em>tir uma<em><em> string </em></em>R<em><em>epe</em></em>tir uma <em><em>string</em></em>",<em><em> </em></em>do freeCodeCamp<em><em>.</em></em></em></em></a><em><em> (texto em inglês)</em></em></p><p><a href="https://www.freecodecamp.org/news/two-ways-to-confirm-the-ending-of-a-string-in-javascript-62b4677034ac/"><strong><strong>Duas maneiras de confirmar o final de uma s<strong><strong>tring </strong></strong>em<strong><strong> JavaScript</strong></strong></strong></strong></a><br><a href="https://www.freecodecamp.org/news/two-ways-to-confirm-the-ending-of-a-string-in-javascript-62b4677034ac/"><em><em>Neste artigo<em><em>, </em></em>eu explico como resolver o desafio "<em><em>Confirm</em></em>ar o final",<em><em> </em></em>do freeCodeCamp<em><em>.</em></em></em></em></a><em><em> (texto em inglês)</em></em></p><p><strong><strong><a href="https://medium.freecodecamp.com/three-ways-to-return-largest-numbers-in-arrays-in-javascript-5d977baa80a1">Três maneiras de encontrar o maior número em um array usando JavaScript</a></strong></strong><br><em><em>Neste artigo, eu explico como resolver o desafio "<em><em>Ret</em></em>ornar os maiores números em a<em><em>rrays</em></em>"<em><em> </em></em>do freeCodeCamp<em><em>.</em></em></em> (texto em inglês)</em></p><p><a href="https://www.freecodecamp.org/portuguese/news/tres-maneiras-de-inverter-uma-string-em-javascript/"><strong><strong><strong><strong>T</strong></strong>rês maneiras de inverter uma string em <strong><strong>JavaScript</strong></strong></strong></strong></a><br><a href="https://www.freecodecamp.org/portuguese/news/tres-maneiras-de-inverter-uma-string-em-javascript/"><em><em>Este artigo tem por base o desafio de criação de scripts de algoritmos básicos<em><em> </em></em>"Inverter uma s<em><em>tring</em></em>", do freeCodeCamp.</em></em></a></p><p><a href="https://www.freecodecamp.org/portuguese/news/tres-maneiras-de-encontrar-o-fatorial-de-um-numero-em-javascript/"><strong><strong>Três maneiras de encontrar o fatorial de um número em <strong><strong>JavaScript</strong></strong></strong></strong></a><br><a href="https://www.freecodecamp.org/portuguese/news/tres-maneiras-de-encontrar-o-fatorial-de-um-numero-em-javascript/"><em><em>Este artigo tem como base o desafio de criação de scripts de algoritmos básicos "Encontrar o fatorial de um número", do freeCodeCamp.</em></em></a></p><p><a href="https://www.freecodecamp.org/portuguese/news/duas-maneiras-de-conferir-palindromos-em-javascript/"><strong><strong>Duas maneiras de conferir palíndromos<strong><strong> </strong></strong>em <strong><strong>JavaScript</strong></strong></strong></strong></a><br><a href="https://www.freecodecamp.org/portuguese/news/duas-maneiras-de-conferir-palindromos-em-javascript/"><em><em>Este artigo tem como base o desafio de criação de scripts de algoritmos básicos</em></em> <em><em>"Verificador de palíndromo", do freeCodeCamp<em><em>.</em></em></em></em></a></p><p><strong><strong><a href="https://www.freecodecamp.org/portuguese/news/tres-maneiras-de-encontrar-a-maior-palavra-em-uma-string-em-javascript/"><strong><strong>T</strong></strong>rês maneiras de encontrar a maior palavra em uma string em <strong><strong>JavaScript</strong></strong></a></strong></strong><br><a href="https://www.freecodecamp.org/news/three-ways-to-find-the-longest-word-in-a-string-in-javascript-a2fb04c9757c/"><em><em>Este artigo tem como base o desafio de criação de scripts de algoritmos básicos</em></em> <em><em>"Encontrar a palavra mais longa em uma string", do freeCodeCamp<em><em>.</em></em></em></em></a></p><p>Se você tiver sua própria solução ou se tiver sugestões, compartilhe-as.</p><p>Você também pode seguir a autora no <a href="https://medium.com/@sonya.moisset" rel="noopener"><strong><strong><strong><strong>Medium</strong></strong></strong></strong></a>,<strong><strong><strong><strong> </strong></strong></strong></strong>no <strong><strong><strong><strong><a href="https://twitter.com/SonyaMoisset" rel="noopener">Twitter</a></strong></strong></strong></strong>, no <strong><strong><strong><strong><a href="https://github.com/SonyaMoisset" rel="noopener">Github</a></strong></strong></strong></strong> e no <a href="https://www.linkedin.com/in/sonyamoisset" rel="noopener"><strong><strong><strong><strong>LinkedIn</strong></strong></strong></strong></a> ;-)</p><p>‪#‎SigaCurioso‬, ‪#SigaProgramando e ‪#‎FaçaAcontecer!</p><h3 id="recursos-utilizados"><strong><strong><strong>Recursos utilizados</strong></strong></strong></h3><ul><li><a href="https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase">Método toLowerCase() — MDN</a></li><li><a href="https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase">Método toUpperCase() — MDN</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/p/2a2d7f62-bcfc-48fc-a2a7-03dcebfeb7c0/developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/String/charAt">Método charAt() — MDN</a></li><li><a href="https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/String/slice">Método slice() — MDN</a></li><li><a href="https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/String/split">Método split() — MDN</a></li><li><a href="https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/join">Método join() — MDN</a></li><li><a href="https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/for">for — MDN</a></li><li><a href="https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/map">Método map() — MDN</a></li><li><a href="https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/String/replace">Método replace() — MDN</a></li></ul> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
