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.
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.
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
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | 1.0 | 1.0 (1.7 or earlier) | 5.5 | (Yes) | (Yes) |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |