{"id":37778,"date":"2025-07-15T17:08:17","date_gmt":"2025-07-15T20:08:17","guid":{"rendered":"https:\/\/www.locaweb.com.br\/ajuda\/?post_type=ht_kb&#038;p=37778"},"modified":"2025-07-15T17:08:17","modified_gmt":"2025-07-15T20:08:17","slug":"unshift-javascript","status":"publish","type":"ht_kb","link":"https:\/\/www.locaweb.com.br\/ajuda\/wiki\/unshift-javascript\/","title":{"rendered":"M\u00e9todo unshift: insira elementos no in\u00edcio de um array"},"content":{"rendered":"<p>O m\u00e9todo <strong>unshift em JavaScript<\/strong> \u00e9 utilizado para adicionar elementos no in\u00edcio de um array. Ele permite manipular a ordem dos itens de maneira eficiente, especialmente para criar estruturas como filas ou reorganizar dados.<\/p>\n<p>Neste artigo, exploraremos exemplos pr\u00e1ticos do uso do <em>unshift()<\/em>, suas diferen\u00e7as em rela\u00e7\u00e3o a outros m\u00e9todos e como ele impacta o desempenho, principalmente em arrays grandes. Acompanhe para entender como tirar o m\u00e1ximo proveito desse m\u00e9todo em suas aplica\u00e7\u00f5es JavaScript.<\/p>\n<h2>Exemplos pr\u00e1ticos de uso do unshift()<\/h2>\n<p>O m\u00e9todo <em>unshift()<\/em> em JavaScript \u00e9 utilizado para <strong>adicionar um ou mais elementos no in\u00edcio de um array<\/strong>. Ele pode ser \u00fatil quando \u00e9 necess\u00e1rio criar estruturas como filas, onde os elementos mais antigos s\u00e3o removidos primeiro.<\/p>\n<p>Isso \u00e9 similar ao processo de <a href=\"https:\/\/www.locaweb.com.br\/hospedagem-de-sites-com-dominio-gratis\/\" target=\"_blank\" rel=\"noopener noreferrer\">hospedagem de site<\/a>, onde novos conte\u00fados ou funcionalidades s\u00e3o adicionados constantemente, e a organiza\u00e7\u00e3o dos dados precisa ser eficiente para garantir um bom desempenho.<\/p>\n<p>Come\u00e7aremos com exemplos pr\u00e1ticos de uso do<strong> unshift() <\/strong>para, depois, voc\u00ea se aprofundar em outros conceitos e usos.<\/p>\n<h3>Exemplo 1: criar uma fila com unshift()<\/h3>\n<p>Veja um exemplo simples de como usar o <em>unshift()<\/em> para <strong>criar uma fila<\/strong>:<\/p>\n<pre><em>let fila = ['A', 'B', 'C'];<\/em>\r\n\r\n<em>\/\/ Adiciona elementos no in\u00edcio<\/em>\r\n\r\n<em>fila.unshift('D');<\/em>\r\n\r\n<em>console.log(fila); \/\/ Sa\u00edda: ['D', 'A', 'B', 'C']<\/em><\/pre>\n<p>Nesse exemplo, a letra <strong>D <\/strong>foi adicionada ao in\u00edcio da fila e deslocou os elementos existentes para a direita. Esse comportamento \u00e9 caracter\u00edstico de uma fila, onde novos elementos entram na frente, enquanto os antigos seguem para tr\u00e1s.<\/p>\n<p>Outra fun\u00e7\u00e3o do <em>unshift()<\/em> \u00e9 adicionar mais de um elemento de uma vez:<\/p>\n<pre><em>fila.unshift('E', 'F');<\/em>\r\n\r\n<em>console.log(fila); \/\/ Sa\u00edda: ['E', 'F', 'D', 'A', 'B', 'C']<\/em><\/pre>\n<p>Assim, \u00e9 poss\u00edvel manipular a ordem dos elementos de forma eficiente com o uso do <em>unshift()<\/em>.<\/p>\n<h3>Exemplo 2: adicionar objetos a um array<\/h3>\n<p>O m\u00e9todo <em>unshift()<\/em> tamb\u00e9m pode ser usado para<strong> adicionar objetos a um array<\/strong>, o que \u00e9 bem \u00fatil para organizar dados de maneira estruturada.<\/p>\n<p>Veja um exemplo:<\/p>\n<pre><em>let pessoas = [<\/em>\r\n\r\n<em> { nome: 'Jo\u00e3o', idade: 25 },<\/em>\r\n\r\n<em> { nome: 'Maria', idade: 30 }<\/em>\r\n\r\n<em>];<\/em>\r\n\r\n<em>\/\/ Adiciona um novo objeto no in\u00edcio<\/em>\r\n\r\n<em>pessoas.unshift({ nome: 'Carlos', idade: 22 });<\/em>\r\n\r\n<em>console.log(pessoas);<\/em><\/pre>\n<p>Nesse exemplo, um novo objeto com informa\u00e7\u00f5es de <strong>Carlos<\/strong> foi inserido no in\u00edcio do array. Como resultado, o objeto <strong>Carlos<\/strong> ocupa a primeira posi\u00e7\u00e3o no array, enquanto os outros elementos s\u00e3o deslocados para a direita.<\/p>\n<h2>Como remover elementos do in\u00edcio do array?<\/h2>\n<p>O m\u00e9todo <em>shift()<\/em> \u00e9 usado para<strong> remover o primeiro elemento de um array <\/strong>em JavaScript. Ap\u00f3s a remo\u00e7\u00e3o, todos os elementos seguintes s\u00e3o deslocados para a esquerda, e o array diminui de tamanho.<\/p>\n<p>Exemplo de uso do<em> shift():<\/em><\/p>\n<pre><em>let frutas = ['Ma\u00e7\u00e3', 'Banana', 'Laranja'];<\/em>\r\n\r\n<em>let removido = frutas.shift();<\/em>\r\n\r\n<em>console.log(removido); \/\/ Sa\u00edda: 'Ma\u00e7\u00e3'<\/em>\r\n\r\n<em>console.log(frutas); \/\/ Sa\u00edda: ['Banana', 'Laranja']<\/em><\/pre>\n<p>Vale apontar que unshift() e shift() s\u00e3o diferentes: enquanto <strong>unshift() <\/strong><strong>adiciona um ou mais elementos<\/strong> no in\u00edcio do array, <strong>shift()<\/strong><strong> remove o primeiro elemento<\/strong>. Ou seja, um modifica o array ao inserir, enquanto o outro altera ao remover, o que gera efeitos opostos no array.<\/p>\n<h2>O que \u00e9 o m\u00e9todo unshift() no JavaScript?<\/h2>\n<p>Conforme vimos, o m\u00e9todo <em>unshift()<\/em> \u00e9 utilizado em <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/o-que-e-javascript\/\" target=\"_blank\" rel=\"noopener noreferrer\">JavaScript<\/a> para adicionar um ou mais elementos no in\u00edcio de um array. Ele altera o array original ao <strong>deslocar os elementos existentes para a direita<\/strong>, para dar espa\u00e7o aos novos elementos.<\/p>\n<p>Ao contr\u00e1rio do m\u00e9todo <em>push()<\/em>, que adiciona elementos no final do array, o <em>unshift()<\/em> \u00e9 indicado para <strong>criar filas e reordenar dados<\/strong>, pois insere os elementos no come\u00e7o.<\/p>\n<p>Veja um <strong>exemplo b\u00e1sico<\/strong> de <em>unshift()<\/em>:<\/p>\n<pre><em>let numeros = [2, 3, 4];<\/em>\r\n\r\n<em>\/\/ Adiciona elementos no in\u00edcio<\/em>\r\n\r\n<em>numeros.unshift(1);<\/em>\r\n\r\n<em>console.log(numeros); \/\/ Sa\u00edda: [1, 2, 3, 4]<\/em>\r\n\r\nO n\u00famero <strong>1<\/strong> foi inserido no in\u00edcio do array, e os outros (<strong>2, 3, 4<\/strong>) foram deslocados uma posi\u00e7\u00e3o \u00e0 direita.\r\n\r\nOutro uso do <em>unshift()<\/em> \u00e9<strong> adicionar m\u00faltiplos elementos ao mesmo tempo<\/strong>:\r\n\r\n<em>numeros.unshift(0, -1);<\/em>\r\n\r\n<em>console.log(numeros); \/\/ Sa\u00edda: [0, -1, 1, 2, 3, 4]<\/em><\/pre>\n<p>Esse m\u00e9todo \u00e9 eficaz para manipular arrays de forma din\u00e2mica.<\/p>\n<h2>Sintaxe do unshift() e par\u00e2metros aceitos<\/h2>\n<p>O m\u00e9todo <em>unshift()<\/em> \u00e9 usado para adicionar um ou mais elementos no in\u00edcio de um array. Sua <strong>sintaxe \u00e9 simples<\/strong>:<\/p>\n<p><em>array.unshift(elemento1, elemento2, &#8230;, elementoN)<\/em><\/p>\n<p>O m\u00e9todo aceita adi\u00e7\u00e3o de um ou mais valores no in\u00edcio. Os <strong>par\u00e2metros podem ser de qualquer tipo<\/strong>, como n\u00fameros, strings, objetos, arrays, entre outros.<\/p>\n<p>Exemplo de uso:<\/p>\n<pre><em>let frutas = ['Banana', 'Laranja'];<\/em>\r\n\r\n<em>\/\/ Adiciona v\u00e1rios elementos<\/em>\r\n\r\n<em>frutas.unshift('Ma\u00e7\u00e3', 'Morango');<\/em>\r\n\r\n<em>console.log(frutas); \/\/ Sa\u00edda: ['Ma\u00e7\u00e3', 'Morango', 'Banana', 'Laranja']<\/em>\r\n\r\nO <em>unshift()<\/em> pode adicionar<strong> qualquer tipo de valor<\/strong>, o que inclui objetos ou outros arrays:\r\n\r\n<em>let pessoas = [];<\/em>\r\n\r\n<em>pessoas.unshift({ nome: 'Ana', idade: 28 });<\/em>\r\n\r\n<em>console.log(pessoas); \/\/ Sa\u00edda: [{ nome: 'Ana', idade: 28 }]<\/em><\/pre>\n<h2>Qual \u00e9 a diferen\u00e7a entre push() e unshift()?<\/h2>\n<p>Os m\u00e9todos <em>push()<\/em> e <em>unshift()<\/em> t\u00eam a fun\u00e7\u00e3o de adicionar elementos em um array, mas com comportamentos diferentes.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><strong>push()<\/strong>: adiciona um ou mais elementos ao final do array,<strong> sem alterar a posi\u00e7\u00e3o<\/strong> dos elementos existentes.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Exemplo:<\/p>\n<pre><em>let frutas = ['Ma\u00e7\u00e3', 'Banana'];<\/em>\r\n\r\n<em>frutas.push('Laranja');<\/em>\r\n\r\n<em>console.log(frutas); \/\/ Sa\u00edda: ['Ma\u00e7\u00e3', 'Banana', 'Laranja']<\/em><\/pre>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><strong>unshift()<\/strong>: adiciona elementos no in\u00edcio do array. Para isso, ele <strong>desloca todos os outros elementos<\/strong> para a direita, o que pode deixar a performance mais lenta, especialmente em arrays grandes.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Exemplo:<\/p>\n<pre><em>let frutas = ['Ma\u00e7\u00e3', 'Banana'];<\/em>\r\n\r\n<em>frutas.unshift('Laranja');<\/em>\r\n\r\n<em>console.log(frutas); \/\/ Sa\u00edda: ['Laranja', 'Ma\u00e7\u00e3', 'Banana']<\/em><\/pre>\n<h2>O que acontece com os \u00edndices ao usar unshift()?<\/h2>\n<p>Ao usar o m\u00e9todo <em>unshift()<\/em> para adicionar um ou mais elementos no in\u00edcio de um array, todos os elementos existentes s\u00e3o deslocados para a direita. Isso significa que os<strong> \u00edndices dos elementos originais s\u00e3o alterados<\/strong>, com cada um aumentado em 1.<\/p>\n<p>Exemplo:<\/p>\n<pre><em>let frutas = ['Banana', 'Laranja'];<\/em>\r\n\r\n<em>frutas.unshift('Ma\u00e7\u00e3');<\/em>\r\n\r\n<em>console.log(frutas); \/\/ Sa\u00edda: ['Ma\u00e7\u00e3', 'Banana', 'Laranja']<\/em><\/pre>\n<p>Nesse caso, o \u00edndice de <strong>Banana<\/strong> passou de 0 para 1, e o de <strong>Laranja<\/strong> foi de 1 para 2.<\/p>\n<p>Em arrays mais longos, o desempenho pode ser afetado, j\u00e1 que o <em>unshift()<\/em> precisa mover todos os elementos para frente, o que<strong> consome mais recursos<\/strong> de processamento, especialmente em arrays com muitos itens.<\/p>\n<p>Gostou deste conte\u00fado? Para entender mais, descubra as <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/arrays-em-javascript\/\" target=\"_blank\" rel=\"noopener noreferrer\">fun\u00e7\u00f5es nativas de arrays em JavaScript<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O m\u00e9todo unshift em JavaScript \u00e9 utilizado para adicionar elementos no in\u00edcio de um array. Ele permite manipular a ordem dos itens de maneira eficiente, especialmente para criar estruturas como filas ou reorganizar dados. Neste artigo, exploraremos exemplos pr\u00e1ticos do uso do unshift(), suas diferen\u00e7as em rela\u00e7\u00e3o a outros m\u00e9todos&#8230;<\/p>\n","protected":false},"author":48,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[119],"ht-kb-tag":[],"class_list":["post-37778","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-hospedagem-de-sites"],"_links":{"self":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb\/37778","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/users\/48"}],"replies":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/comments?post=37778"}],"version-history":[{"count":1,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb\/37778\/revisions"}],"predecessor-version":[{"id":37780,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb\/37778\/revisions\/37780"}],"wp:attachment":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/media?parent=37778"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb-category?post=37778"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb-tag?post=37778"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}