--- title: Array.prototype.shift() slug: Web/JavaScript/Reference/Global_Objects/Array/shift tags: - Array - JavaScript - Prototype - Reference - metodo translation_of: Web/JavaScript/Reference/Global_Objects/Array/shift ---
O método shift()remove o primeiro elemento de um array e retorna esse elemento. Este método muda o tamanho do array.
{{EmbedInteractiveExample("pages/js/array-shift.html")}}
O código deste exemplo interativo está salvo em um repositório do GitHub. Se você quiser contribuir com o projeto de exemplos interativos, clone https://github.com/mdn/interactive-examples e envie-nos um pull request.
arr.shift()
O elemento removido do array; {{jsxref("undefined")}} se o array estiver vazio.
O método shift remove o elemento de índice zero, diminui em 1 os indices dos demais valores e retorna o valor removido. Se a propriedade {{jsxref("Array.length", "length")}} for 0, então {{jsxref("undefined")}} é retornado.
shift
é intencionalmente genérico; esse método pode ser {{jsxref("Function.call", "chamado", "", 1)}} ou {{jsxref("Function.apply", "aplicado", "", 1)}} para objetos parecidos com arrays. Objetos que não contém a propriedade length
representando o tamanho de uma série consecutiva, começando em zero, podem não se comportar de maneira correta.
O código a seguir mostra o array minhaLista
antes e depois de remover seu primeiro elemento. Ele também mostra o elemento removido.
var minhaLista = ['anjo', 'casa', 'mandarim', 'medico']; console.log('minhaLista antes: ' + minhaLista); // minhaList antes: ['anjo', 'casa', 'mandarim', 'medico'] var shifted = minhaLista.shift(); console.log('minhaLista depois: ' + minhaLista); // minhaList depois: ['casa', 'mandarim', 'medico'] console.log('Elemento removido: ' + shifted); // Elemento removido: anjo
O médodo shift() é frequentemente usado como condição dentro de um loop de while. No exemplo a seguir, cada iteração removerá o elemento seguinte do array, até que ele esteja vazio:
var nomes = ["André", "Eduardo", "Paulo", "Cris", "João"]; while( (i = nomes.shift()) !== undefined ) { console.log(i); } // André Eduardo Paulo Cris João
Especificação | Estado | Comentário |
---|---|---|
ECMAScript 3rd Edition | Standard | Implementação inicial. Implementado no JavaScript 1.2. |
{{SpecName('ES5.1', '#sec-15.4.4.9', 'Array.prototype.shift')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-array.prototype.shift', 'Array.prototype.shift')}} | {{Spec2('ES6')}} |