Array.prototype.shift()

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

BCD tables only load in the browser

Veja também