Array.prototype.shift()

Esta tradução está incompleta. Ajude a traduzir este artigo em inglês

Sumário

O método shift()remove o primeiro elemento de um array e retorna esse elemento. Este método muda o tamanho do array. 

Sintaxe

arr.shift()

Valor de retorno

O elemento removido do array; undefined se o array estiver vazio.

Descrição

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 length for 0, então undefined é retornado.

shift é intencionalmente genérico; esse método pode ser chamado ou aplicado 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.

Exemplos

Removendo um elemento de array

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

Usando o método shift() dentro de um loop de while

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ções

Especificação Estado Comentário
ECMAScript 3rd Edition Standard Implementação inicial. Implementado no JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
The definition of 'Array.prototype.shift' in that specification.
Padrão
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.prototype.shift' in that specification.
Padrão

Compatibilidade de Browser

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
shiftChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 5.5Opera Full support 4Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100

Legend

Full support  
Full support

Veja também