{"id":10218,"date":"2023-07-28T08:42:11","date_gmt":"2023-07-28T11:42:11","guid":{"rendered":"https:\/\/www.homehost.com.br\/blog\/?p=10218"},"modified":"2023-07-28T15:03:02","modified_gmt":"2023-07-28T18:03:02","slug":"foreach-javascript","status":"publish","type":"post","link":"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/","title":{"rendered":"forEach JavaScript: exemplos pr\u00e1ticos"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">O m\u00e9todo forEach JavaScript \u00e9 uma ferramenta v\u00e1lida, por <strong>permitir iterar de forma simples e direta sobre os elementos de uma cole\u00e7\u00e3o<\/strong> (array ou um objeto).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Usar o `forEach`, portanto, torna desnecess\u00e1ria a preocupa\u00e7\u00e3o com \u00edndices ou chaves<\/strong>, tornando a sintaxe mais limpa e f\u00e1cil de entender.&nbsp;Por isso, ele \u00e9 um m\u00e9todo costumeiramente escolhido ao inv\u00e9s do for, ainda que tenha suas limita\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essa funcionalidade torna o c\u00f3digo mais leg\u00edvel e reduz a probabilidade de erros, tornando, dessa forma, o `forEach` uma escolha \u00fatil e eficiente para realizar opera\u00e7\u00f5es em cada elemento da cole\u00e7\u00e3o de forma concisa e clara. Confira o texto abaixo e compreenda sua funcionalidade e aplica\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_72 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Conte\u00fado<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#Como_usar_forEach_em_JavaScript\" title=\"Como usar forEach em JavaScript?\">Como usar forEach em JavaScript?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#Como_lidar_com_loops_em_forEach_em_JavaScript\" title=\"Como lidar com loops em forEach em JavaScript\">Como lidar com loops em forEach em JavaScript<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#Como_usar_forEach_com_arrays_em_JavaScript\" title=\"Como usar forEach com arrays em JavaScript\">Como usar forEach com arrays em JavaScript<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#Como_usar_forEach_com_objetos_em_JavaScript\" title=\"Como usar forEach com objetos em JavaScript\">Como usar forEach com objetos em JavaScript<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#Alternativas_ao_forEach_em_JavaScript\" title=\"Alternativas ao `forEach` em JavaScript\">Alternativas ao `forEach` em JavaScript<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#1_For_Loop_Tradicional\" title=\"1. For Loop Tradicional\">1. For Loop Tradicional<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#2_For%E2%80%A6of_Loop\" title=\"2. For&#8230;of Loop\">2. For&#8230;of Loop<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#3_Funcoes_de_Array\" title=\"3. Fun\u00e7\u00f5es de Array\">3. Fun\u00e7\u00f5es de Array<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que \u00e9 forEach JavaScript?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O &#8220;<code>forEach<\/code>&#8221; \u00e9 um m\u00e9todo \u00fatil em JavaScript para <a href=\"https:\/\/panda.ime.usp.br\/pensepy\/static\/pensepy\/07-Iteracao\/maisiteracao.html\" target=\"_blank\" rel=\"noreferrer noopener\">iterar<\/a> de forma simples e direta<\/strong> sobre os elementos de uma cole\u00e7\u00e3o, como um <code>array <\/code>ou um objeto. Ele evita a necessidade de se preocupar com \u00edndices ou chaves, proporcionando, assim, uma <strong>sintaxe mais limpa e leg\u00edvel<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo de forEach<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Em JavaScript, o <code>`forEach`<\/code> \u00e9 um m\u00e9todo que permite <strong>percorrer todos os elementos de um array, um por um,<\/strong> e realizar uma a\u00e7\u00e3o para cada elemento. Ele \u00e9 como um ajudante que lhe permite inspecionar cada item do array sem precisar escrever um monte de c\u00f3digo repetitivo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos ver um exemplo simples usando o `<strong>forEach<\/strong>`. Suponha que temos um array de frutas:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>const frutas = ['ma\u00e7\u00e3', 'banana', 'laranja', 'uva'];<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Agora, queremos imprimir cada fruta no console. Usando o `forEach`, podemos fazer isso de forma f\u00e1cil e clara:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>frutas.forEach(function(fruta) {\n\n&nbsp;&nbsp;console.log(fruta);\n\n});<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O que acontece aqui \u00e9 que o `<strong><code>forEach<\/code><\/strong>` percorre cada elemento do <code>array <\/code>`frutas`. Para cada fruta, <strong>ele executa uma fun\u00e7\u00e3o que n\u00f3s fornecemos<\/strong>. Nesse caso, usamos uma fun\u00e7\u00e3o que simplesmente imprime cada fruta no console.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ent\u00e3o, quando o `forEach` \u00e9 executado, ele imprimir\u00e1:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ma\u00e7\u00e3\n\nbanana\n\nlaranja\n\nuva<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O `<code>forEach<\/code>` \u00e9 muito \u00fatil quando voc\u00ea precisa fazer algo com cada elemento do <code>array<\/code>, como <strong>calcular valores, modificar os elementos, exibir informa\u00e7\u00f5es ou realizar qualquer outra a\u00e7\u00e3o<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_usar_forEach_em_JavaScript\"><\/span>Como usar forEach em JavaScript?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para utilizar o &#8220;<strong>forEach<\/strong>&#8221; em JavaScript, basta <strong>cham\u00e1-lo em um array ou utilizar a fun\u00e7\u00e3o <code>\"Object.keys()\" <\/code><\/strong>para obter um <code>array <\/code>de chaves de um objeto.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em seguida, passamos uma fun\u00e7\u00e3o de <code><strong>callback <\/strong><\/code>que ser\u00e1 executada para cada elemento do <code>array<\/code>, permitindo a realiza\u00e7\u00e3o de opera\u00e7\u00f5es espec\u00edficas em cada elemento da cole\u00e7\u00e3o. Isso \u00e9 necess\u00e1rio porque <strong>a fun\u00e7\u00e3o \u201c<code>callback<\/code>\u201d \u00e9 um par\u00e2metro da fun\u00e7\u00e3o principal,<\/strong> ela precisa ser finalizada para que a fun\u00e7\u00e3o principal seja executada.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo de uso de forEach com array<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>const cores = &#091;'vermelho', 'verde', 'azul'];\n\n\/\/ Utilizando o forEach para exibir as cores do array\n\ncores.forEach(cor =&gt; {\n\n&nbsp;&nbsp;console.log(cor);\n\n});<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo de uso de <code>forEach <\/code>com objeto:<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>const aluno = {\n\n\u00a0\u00a0nome: 'Maria',\n\n\u00a0\u00a0idade: 25,\n\n\u00a0\u00a0curso: 'Ci\u00eancias da Computa\u00e7\u00e3o'\n\n};\n\n\/\/ Utilizando o forEach para exibir as propriedades do objeto\n\nObject.keys(aluno).forEach(propriedade =&gt; {\n\n\u00a0\u00a0console.log(`${propriedade}: ${aluno&#091;propriedade]}`);\n\n});<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_lidar_com_loops_em_forEach_em_JavaScript\"><\/span>Como lidar com loops em forEach em JavaScript<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Diferentemente do la\u00e7o &#8220;<code>for<\/code>&#8220;, <strong>o &#8220;<code>forEach<\/code>&#8221; n\u00e3o pode ser interrompido antecipadamente.<\/strong> Para evitar loops, verifique se a fun\u00e7\u00e3o de <code>callback <\/code>n\u00e3o est\u00e1 causando uma condi\u00e7\u00e3o sempre verdadeira.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo de poss\u00edvel loop infinito em forEach<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>const numeros = &#091;1, 2, 3, 4, 5];\n\n\/\/ Utilizando forEach para multiplicar os n\u00fameros por 2, mas com um erro\n\nnumeros.forEach(numero =&gt; {\n\n&nbsp;&nbsp;numeros.push(numero * 2); \/\/ Isso causar\u00e1 um loop infinito!\n\n});<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_usar_forEach_com_arrays_em_JavaScript\"><\/span>Como usar forEach com arrays em JavaScript<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para utilizar &#8220;<code>forEach<\/code>&#8221; com arrays, <strong>basta chamar o m\u00e9todo &#8220;<code>forEach<\/code>&#8221; no <code>array <\/code>e passar uma fun\u00e7\u00e3o de <\/strong><code><strong>callback<\/strong> <\/code>que ser\u00e1 executada para cada elemento.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo de uso de forEach com array<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>const frutas = &#091;'ma\u00e7\u00e3', 'banana', 'laranja'];\n\n\/\/ Utilizando forEach para imprimir o plural de cada fruta\n\nfrutas.forEach(fruta =&gt; {\n\n&nbsp;&nbsp;console.log(fruta + 's');\n\n});<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_usar_forEach_com_objetos_em_JavaScript\"><\/span>Como usar forEach com objetos em JavaScript<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para utilizar &#8220;<code>forEach<\/code>&#8221; com objetos, <strong>\u00e9 necess\u00e1rio transformar as chaves do objeto em um array usando a fun\u00e7\u00e3o <code>\"Object.keys()\"<\/code><\/strong> e, em seguida, chamar o m\u00e9todo &#8220;<code>forEach<\/code>&#8221; nesse array.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo de uso de forEach com objeto<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>const pessoa = {\n\n&nbsp;&nbsp;nome: 'Ana',\n\n&nbsp;&nbsp;idade: 28,\n\n&nbsp;&nbsp;profissao: 'Advogada'\n\n};\n\n\/\/ Utilizando forEach para exibir as propriedades e valores do objeto\n\nObject.keys(pessoa).forEach(propriedade =&gt; {\n\n&nbsp;&nbsp;console.log(`${propriedade}: ${pessoa&#091;propriedade]}`);\n\n});<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Alternativas_ao_forEach_em_JavaScript\"><\/span>Alternativas ao `forEach` em JavaScript<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ao percorrer arrays em JavaScript, existem alternativas ao loop <strong>`<code>forEach<\/code>`<\/strong>. Abaixo, mostraremos tr\u00eas op\u00e7\u00f5es: <strong><code>`for` loop tradicional<\/code><\/strong>, <strong><code>`for...of`<\/code><\/strong> loop e as fun\u00e7\u00f5es de array <strong>`<\/strong><code><strong>map`<\/strong>, <strong>`reduce`<\/strong><\/code> e <strong>`<code>filter<\/code>`<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_For_Loop_Tradicional\"><\/span>1. For Loop Tradicional<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O loop <strong>`<code>for<\/code>`<\/strong> tradicional \u00e9 uma das formas mais comuns de <strong>percorrer arrays em JavaScript<\/strong>. Neste exemplo, percorremos um array de n\u00fameros e exibimos cada elemento no console:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const array = &#091;1, 2, 3, 4, 5];\n\nfor (let i = 0; i &lt; array.length; i++) {\n\n&nbsp;&nbsp;console.log(array&#091;i]);\n\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_For%E2%80%A6of_Loop\"><\/span>2. For&#8230;of Loop<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O loop <strong><code>`for...of`<\/code><\/strong> \u00e9 uma alternativa moderna e leg\u00edvel ao `forEach`. Ele nos permite <strong>iterar diretamente sobre os elementos do array<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const array = &#091;1, 2, 3, 4, 5];\n\nfor (const elemento of array) {\n\n&nbsp;&nbsp;console.log(elemento);\n\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_Funcoes_de_Array\"><\/span>3. Fun\u00e7\u00f5es de Array<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">As fun\u00e7\u00f5es <code><strong>`map`, `reduce` e `filter`<\/strong> <\/code>proporcionam uma maneira mais concisa e expressiva de manipular arrays, sem a necessidade de um loop expl\u00edcito:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Map<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">O m\u00e9todo `<strong><code>map<\/code><\/strong>` <strong>cria um novo array com os resultados de uma fun\u00e7\u00e3o aplicada<\/strong> <strong>a cada elemento do array original<\/strong>. Neste exemplo, multiplicamos cada elemento por 2:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const array = &#091;1, 2, 3, 4, 5];\n\nconst novoArray = array.map(elemento =&gt; elemento * 2);\n\nconsole.log(novoArray); \/\/ &#091;2, 4, 6, 8, 10]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Reduce<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">O m\u00e9todo `<strong><code>reduce<\/code><\/strong>` <strong>reduz o array a um \u00fanico valor<\/strong>, acumulando os resultados da fun\u00e7\u00e3o aplicada a cada elemento. Aqui, somamos todos os elementos do array:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const array = &#091;1, 2, 3, 4, 5];\n\nconst soma = array.reduce((acumulador, elemento) =&gt; acumulador + elemento, 0);\n\nconsole.log(soma); \/\/ 15<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Filter<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">O m\u00e9todo `<strong><code>filter<\/code><\/strong>` <strong>cria um novo array com os elementos que passam em um teste especificado por uma fun\u00e7\u00e3o<\/strong>. Neste caso, filtramos apenas os n\u00fameros pares:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const array = &#091;1, 2, 3, 4, 5];\n\nconst arrayFiltrado = array.filter(elemento =&gt; elemento % 2 === 0);\n\nconsole.log(arrayFiltrado); \/\/ &#091;2, 4]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cada uma dessas alternativas tem seus pr\u00f3prios benef\u00edcios e podem ser mais adequadas dependendo do contexto e da finalidade do c\u00f3digo.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 importante considerar a legibilidade do c\u00f3digo, o desempenho e a simplicidade da abordagem ao escolher a melhor op\u00e7\u00e3o para o seu projeto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Os benef\u00edcios de usar forEach em JavaScript<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Sintaxe mais limpa e leg\u00edvel<\/strong> em compara\u00e7\u00e3o com o <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-foreach\/\" target=\"_blank\" rel=\"noreferrer noopener\">la\u00e7o de itera\u00e7\u00e3o &#8220;<strong><code>for<\/code><\/strong>&#8220;<\/a>;<\/li>\n\n\n\n<li><strong>Evita o gerenciamento de \u00edndices<\/strong> ou chaves manualmente;<\/li>\n\n\n\n<li><strong>Funciona bem com fun\u00e7\u00f5es de ordem superior<\/strong> (higher-order functions) e callbacks.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Os desafios de usar forEach em JavaScript<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Embora o forEach seja uma op\u00e7\u00e3o \u00fatil para percorrer arrays em JavaScript, ele tamb\u00e9m apresenta alguns desafios que podem limitar suas possibilidades em certas situa\u00e7\u00f5es. Dois desafios importantes que servem de exemplo, s\u00e3o:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Falta de controle de fluxo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Um dos principais desafios do <code>forEach <\/code>\u00e9 que <strong>ele n\u00e3o oferece controle de fluxo<\/strong>, o que significa que <strong>n\u00e3o \u00e9 poss\u00edvel interromper a itera\u00e7\u00e3o antecipadamente usando um <code>break<\/code><\/strong>, nem retornar de forma condicional com um <strong><code>return<\/code><\/strong>.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dessa maneira, isso pode ser problem\u00e1tico quando voc\u00ea precisa parar o loop assim que uma determinada condi\u00e7\u00e3o for atendida ou retornar um valor espec\u00edfico com base em alguma condi\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo, suponha que voc\u00ea tenha um <code>array <\/code>de n\u00fameros e queira encontrar o primeiro n\u00famero par. Usando o <strong><code>forEach<\/code><\/strong>, voc\u00ea n\u00e3o pode parar o loop assim que encontrar o primeiro n\u00famero par:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const numeros = &#091;1, 3, 2, 5, 4, 6];\n\nnumeros.forEach(function(numero) {\n\n&nbsp;&nbsp;if (numero % 2 === 0) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ N\u00e3o \u00e9 poss\u00edvel fazer um \"break\" aqui para parar o loop\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ N\u00e3o \u00e9 poss\u00edvel retornar o n\u00famero par aqui com um \"return\"\n\n&nbsp;&nbsp;}\n\n});<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. Falta de acesso ao \u00edndice ou chave do elemento<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Outro desafio do forEach \u00e9 que <strong>ele n\u00e3o fornece um mecanismo direto para acessar o \u00edndice ou chave do elemento durante a itera\u00e7\u00e3o<\/strong>. Em algumas situa\u00e7\u00f5es, voc\u00ea pode precisar dessa informa\u00e7\u00e3o para fins de c\u00e1lculo, manipula\u00e7\u00e3o ou outros processos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dessa forma, se voc\u00ea deseja percorrer um array e exibir tanto o elemento quanto o seu \u00edndice, n\u00e3o \u00e9 poss\u00edvel fazer isso diretamente com o <code>forEach<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const frutas = &#091;'ma\u00e7\u00e3', 'banana', 'laranja'];\n\nfrutas.forEach(function(fruta) {\n\n&nbsp;&nbsp;console.log(fruta); \/\/ Exibe apenas o elemento (fruta), mas n\u00e3o o \u00edndice.\n\n});<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Embora o forEach possa ser \u00fatil para muitas tarefas de itera\u00e7\u00e3o simples em arrays, \u00e9 importante estar ciente de suas limita\u00e7\u00f5es.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se voc\u00ea precisa de mais controle de fluxo ou acesso ao \u00edndice\/chave do elemento durante a itera\u00e7\u00e3o, <strong>outras abordagens,<\/strong> como o uso do <strong>for loop tradicional<\/strong>, <strong>for&#8230;of<\/strong> ou <strong>fun\u00e7\u00f5es de array<\/strong> como <strong>map, reduce e filter<\/strong>, podem ser mais adequadas para suas necessidades espec\u00edficas.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cada abordagem tem suas pr\u00f3prias vantagens e desvantagens, e \u00e9 importante, portanto, escolher a que melhor se adapte ao seu caso de uso particular.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quando usar forEach em vez de for em JavaScript<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Conforme o que dissemos antes, <strong><code>forEach <\/code>\u00e9 especialmente \u00fatil quando voc\u00ea precisa iterar sobre os elementos de uma cole\u00e7\u00e3o<\/strong>, como um <code>array<\/code>, e realizar uma opera\u00e7\u00e3o em cada elemento sem se preocupar com os \u00edndices ou chaves. Isso torna o c\u00f3digo mais leg\u00edvel, conciso e menos propenso a erros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqui est\u00e3o algumas situa\u00e7\u00f5es em que o forEach \u00e9 uma escolha mais adequada em vez do la\u00e7o for em JavaScript:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Itera\u00e7\u00e3o Simples<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Quando voc\u00ea precisa <strong>apenas percorrer todos os elementos do array e executar uma opera\u00e7\u00e3o em cada um<\/strong>, sem necessidade de manipula\u00e7\u00e3o de \u00edndices ou contadores, o <code>forEach <\/code>\u00e9 uma op\u00e7\u00e3o mais clara e limpa.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Legibilidade do C\u00f3digo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O <code>forEach <\/code>torna o <a href=\"https:\/\/pt.linkedin.com\/pulse\/duas-dicas-para-um-c%C3%B3digo-mais-leg%C3%ADvel-c%C3%A1ssio-pereira\" target=\"_blank\" rel=\"noreferrer noopener\">c\u00f3digo mais leg\u00edvel<\/a>, pois expressa claramente a inten\u00e7\u00e3o do <code>loop<\/code>:<\/strong> executar uma a\u00e7\u00e3o para cada elemento do <code>array<\/code>. Isso torna o c\u00f3digo mais f\u00e1cil de entender para outros desenvolvedores que possam estar lendo ou mantendo o c\u00f3digo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Menos Erros<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ao usar o <code>forEach<\/code>, voc\u00ea evita erros comuns associados ao gerenciamento de \u00edndices em <code>loops for<\/code>.<\/strong> Erros de <strong>off-by-one<\/strong> (como come\u00e7ar com \u00edndice 1 em vez de 0) ou <strong>loops infinitos acidentais<\/strong> s\u00e3o menos prov\u00e1veis com o <code>forEach<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sintaxe Mais Concisa<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O <code>forEach<\/code> tem uma sintaxe mais concisa e elegante em compara\u00e7\u00e3o com o <code>loop for<\/code><\/strong>, o que torna o c\u00f3digo mais enxuto e de f\u00e1cil compreens\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos comparar um exemplo de uso do for com o forEach para percorrer e exibir elementos de um <code>array<\/code>:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Usando &#8220;<code>for<\/code>&#8221; para percorrer um <code>array<\/code><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>const frutas = &#091;'ma\u00e7\u00e3', 'banana', 'laranja', 'uva'];\n\nfor (let i = 0; i &lt; frutas.length; i++) {\n\n&nbsp;&nbsp;console.log(frutas&#091;i]);\n\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Usando &#8220;<code>forEach<\/code>&#8221; para percorrer um array<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>const frutas = &#091;'ma\u00e7\u00e3', 'banana', 'laranja', 'uva'];\n\nfrutas.forEach(function(fruta) {\n\n&nbsp;&nbsp;console.log(fruta);\n\n});<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Neste exemplo, o resultado de ambos os loops \u00e9 o mesmo: as frutas s\u00e3o exibidas no console. No entanto, <strong>o <code>forEach <\/code>\u00e9 mais expressivo e conciso<\/strong>, tornando o c\u00f3digo mais claro e f\u00e1cil de entender.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em resumo, sempre que voc\u00ea precisar apenas iterar sobre os elementos de uma cole\u00e7\u00e3o, executar uma opera\u00e7\u00e3o em cada elemento e n\u00e3o precisar manipular \u00edndices ou chaves, <strong>o <code>forEach <\/code>\u00e9 a escolha mais apropriada em JavaScript.<\/strong>&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quando n\u00e3o usar forEach em JavaScript:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Evite usar &#8220;<code>forEach<\/code>&#8221; quando<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Precisar interromper a itera\u00e7\u00e3o antecipadamente com &#8220;<code>break<\/code>&#8221; ou retornar<\/strong> de forma condicional com &#8220;<code>return<\/code>&#8220;;<\/li>\n\n\n\n<li><strong>Necessitar acessar o \u00edndice ou a chave<\/strong> do elemento durante a itera\u00e7\u00e3o.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo de situa\u00e7\u00e3o em que n\u00e3o \u00e9 adequado utilizar forEach<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>const numeros = &#091;1, 2, 3, 4, 5];\n\n\/\/ Tentando usar forEach para encontrar o n\u00famero 3 e interromper a itera\u00e7\u00e3o\n\nlet encontrado = false;\n\nnumeros.forEach(numero =&gt; {\n\n&nbsp;&nbsp;if (numero === 3) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;encontrado = true;\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ N\u00e3o \u00e9 poss\u00edvel interromper aqui!\n\n&nbsp;&nbsp;}\n\n});\n\nconsole.log(encontrado);<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Em suma, <strong>o uso do m\u00e9todo forEach \u00e9 uma abordagem que reduz consideravelmente as preocupa\u00e7\u00f5es relacionadas ao c\u00f3digo e poss\u00edveis erros dentro dele.<\/strong> Essa vantagem \u00e9 obtida atrav\u00e9s da capacidade do forEach de tornar a sintaxe mais leg\u00edvel, limpa e menos repetitiva, facilitando a compreens\u00e3o do c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ao contr\u00e1rio do tradicional loop for, o c\u00f3digo utilizando forEach \u00e9 notavelmente mais conciso<\/strong>. Ele possibilita a execu\u00e7\u00e3o de fun\u00e7\u00f5es sem a necessidade de repetir massivamente o mesmo conjunto de c\u00f3digos manualmente. Essa caracter\u00edstica proporciona ao programador uma sensa\u00e7\u00e3o de seguran\u00e7a, uma vez que sabemos que o m\u00e9todo manual pode gerar incertezas e dificuldades de manuten\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, <strong>a implementa\u00e7\u00e3o manual de loops pode ser propensa a erros e resultar em perda de tempo<\/strong>, por ser necess\u00e1rio verificar minuciosamente cada vari\u00e1vel, fun\u00e7\u00e3o e afins, quando a automatiza\u00e7\u00e3o n\u00e3o est\u00e1 presente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Assim, ao utilizar forEach em vez de for, voc\u00ea aprendeu uma forma mais eficiente de iterar sobre elementos em uma lista ou cole\u00e7\u00e3o. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essa compreens\u00e3o permitir\u00e1 que voc\u00ea distinga de maneira mais clara  quando a abordagem com forEach \u00e9 a mais adequada para o seu c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esperamos que este artigo tenha sido uma <strong>fonte v\u00e1lida de aprendizado<\/strong>, auxiliando-o a melhorar suas habilidades em programa\u00e7\u00e3o continuamente. Se voc\u00ea ainda deseja aprender mais sobre for, experimente ler nosso artigo de <a href=\"https:\/\/www.homehost.com.br\/blog\/pythondjango\/for-em-python\/\" target=\"_blank\" rel=\"noreferrer noopener\">For em Python: guia completo com 18 exemplos<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conhecimento nunca \u00e9 demais, certo?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O m\u00e9todo forEach JavaScript \u00e9 uma ferramenta v\u00e1lida, por permitir iterar de forma simples e direta sobre os elementos de uma cole\u00e7\u00e3o (array ou um objeto). Usar o `forEach`, portanto, torna desnecess\u00e1ria a preocupa\u00e7\u00e3o com \u00edndices ou chaves, tornando a sintaxe mais limpa e f\u00e1cil de entender.&nbsp;Por isso, ele \u00e9 um m\u00e9todo costumeiramente escolhido ao [&hellip;]<\/p>\n","protected":false},"author":31,"featured_media":10219,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_helpful_status":1,"_lmt_disableupdate":"","_lmt_disable":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[6585],"tags":[253],"class_list":["post-10218","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","tag-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>forEach JavaScript: exemplos pr\u00e1ticos | Homehost<\/title>\n<meta name=\"description\" content=\"forEach JavaScript \u00e9 um m\u00e9todo semelhante ao for, mas com suas particularidades, nesse artigo voc\u00ea l\u00ea sobre as diferen\u00e7as e como us\u00e1-lo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"forEach JavaScript: exemplos pr\u00e1ticos | Homehost\" \/>\n<meta property=\"og:description\" content=\"forEach JavaScript \u00e9 um m\u00e9todo semelhante ao for, mas com suas particularidades, nesse artigo voc\u00ea l\u00ea sobre as diferen\u00e7as e como us\u00e1-lo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/\" \/>\n<meta property=\"og:site_name\" content=\"Homehost\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Homehost\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-28T11:42:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-28T18:03:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2023\/07\/Selenium-Python-Foreach-JavaScript-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"1001\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daiana S\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Homehost\" \/>\n<meta name=\"twitter:site\" content=\"@Homehost\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daiana S\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/\",\"name\":\"forEach JavaScript: exemplos pr\u00e1ticos | Homehost\",\"isPartOf\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2023\/07\/Selenium-Python-Foreach-JavaScript-1.png\",\"datePublished\":\"2023-07-28T11:42:11+00:00\",\"dateModified\":\"2023-07-28T18:03:02+00:00\",\"author\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/eb90cb369d7098d6d85fa96c78ea1689\"},\"description\":\"forEach JavaScript \u00e9 um m\u00e9todo semelhante ao for, mas com suas particularidades, nesse artigo voc\u00ea l\u00ea sobre as diferen\u00e7as e como us\u00e1-lo.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#primaryimage\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2023\/07\/Selenium-Python-Foreach-JavaScript-1.png\",\"contentUrl\":\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2023\/07\/Selenium-Python-Foreach-JavaScript-1.png\",\"width\":1500,\"height\":1001,\"caption\":\"foreach javascript\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/www.homehost.com.br\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"forEach JavaScript: exemplos pr\u00e1ticos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#website\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/\",\"name\":\"Homehost\",\"description\":\"Hospedagem De Sites\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.homehost.com.br\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/eb90cb369d7098d6d85fa96c78ea1689\",\"name\":\"Daiana S\",\"description\":\"Graduada em Letras pelo Instituto Federal da Para\u00edba e especializada em reda\u00e7\u00e3o geral. Gosto de escrever sobre tudo e me dedico em v\u00e1rios n\u00edveis de expressividade. No geral, todos os meus hobbies giram em torno de escrever alguma coisa e fazer isso bem. Contato: daiana.blog@homehost.com.br\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"forEach JavaScript: exemplos pr\u00e1ticos | Homehost","description":"forEach JavaScript \u00e9 um m\u00e9todo semelhante ao for, mas com suas particularidades, nesse artigo voc\u00ea l\u00ea sobre as diferen\u00e7as e como us\u00e1-lo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/","og_locale":"pt_BR","og_type":"article","og_title":"forEach JavaScript: exemplos pr\u00e1ticos | Homehost","og_description":"forEach JavaScript \u00e9 um m\u00e9todo semelhante ao for, mas com suas particularidades, nesse artigo voc\u00ea l\u00ea sobre as diferen\u00e7as e como us\u00e1-lo.","og_url":"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/","og_site_name":"Homehost","article_publisher":"https:\/\/www.facebook.com\/Homehost\/","article_published_time":"2023-07-28T11:42:11+00:00","article_modified_time":"2023-07-28T18:03:02+00:00","og_image":[{"width":1500,"height":1001,"url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2023\/07\/Selenium-Python-Foreach-JavaScript-1.png","type":"image\/png"}],"author":"Daiana S","twitter_card":"summary_large_image","twitter_creator":"@Homehost","twitter_site":"@Homehost","twitter_misc":{"Escrito por":"Daiana S","Est. tempo de leitura":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/","url":"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/","name":"forEach JavaScript: exemplos pr\u00e1ticos | Homehost","isPartOf":{"@id":"https:\/\/www.homehost.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#primaryimage"},"image":{"@id":"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2023\/07\/Selenium-Python-Foreach-JavaScript-1.png","datePublished":"2023-07-28T11:42:11+00:00","dateModified":"2023-07-28T18:03:02+00:00","author":{"@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/eb90cb369d7098d6d85fa96c78ea1689"},"description":"forEach JavaScript \u00e9 um m\u00e9todo semelhante ao for, mas com suas particularidades, nesse artigo voc\u00ea l\u00ea sobre as diferen\u00e7as e como us\u00e1-lo.","breadcrumb":{"@id":"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#primaryimage","url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2023\/07\/Selenium-Python-Foreach-JavaScript-1.png","contentUrl":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2023\/07\/Selenium-Python-Foreach-JavaScript-1.png","width":1500,"height":1001,"caption":"foreach javascript"},{"@type":"BreadcrumbList","@id":"https:\/\/www.homehost.com.br\/blog\/javascript\/foreach-javascript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.homehost.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"forEach JavaScript: exemplos pr\u00e1ticos"}]},{"@type":"WebSite","@id":"https:\/\/www.homehost.com.br\/blog\/#website","url":"https:\/\/www.homehost.com.br\/blog\/","name":"Homehost","description":"Hospedagem De Sites","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.homehost.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/eb90cb369d7098d6d85fa96c78ea1689","name":"Daiana S","description":"Graduada em Letras pelo Instituto Federal da Para\u00edba e especializada em reda\u00e7\u00e3o geral. Gosto de escrever sobre tudo e me dedico em v\u00e1rios n\u00edveis de expressividade. No geral, todos os meus hobbies giram em torno de escrever alguma coisa e fazer isso bem. Contato: daiana.blog@homehost.com.br"}]}},"modified_by":"Daiana S","jetpack_featured_media_url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2023\/07\/Selenium-Python-Foreach-JavaScript-1.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/10218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/users\/31"}],"replies":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=10218"}],"version-history":[{"count":6,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/10218\/revisions"}],"predecessor-version":[{"id":10343,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/10218\/revisions\/10343"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/media\/10219"}],"wp:attachment":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=10218"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=10218"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=10218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}