Use unshift
. É como push
, exceto que ele adiciona elementos ao início da matriz em vez do final.
unshift
/ push
- adiciona um elemento ao início / fim de uma matriz
shift
/ pop
- remove e retorna o primeiro / último elemento de uma matriz
Um diagrama simples ...
unshift -> array <- push
shift <- array -> pop
e gráfico:
add remove start end
push X X
pop X X
unshift X X
shift X X
Confira a documentação da matriz MDN . Praticamente todas as linguagens que têm a capacidade de empurrar / pop elementos de uma matriz também têm a capacidade de desviar / mudar (às vezes chamado push_front
/ pop_front
) elementos, você nunca precisará implementá-los.
Conforme apontado nos comentários, se você deseja evitar a mutação de sua matriz original, pode usar concat
, que concatena duas ou mais matrizes juntas. Você pode usar isso para empurrar funcionalmente um único elemento para a frente ou para trás de uma matriz existente; para fazer isso, você precisa transformar o novo elemento em uma única matriz de elementos:
const array = [ 3, 2, 1 ]
const newFirstElement = 4
const newArray = [newFirstElement].concat(array) // [ 4, 3, 2, 1 ]
concat
também pode acrescentar itens. Os argumentos para concat
podem ser de qualquer tipo; eles estão implicitamente agrupados em uma matriz de elemento único, se ainda não forem uma matriz:
const array = [ 3, 2, 1 ]
const newLastElement = 0
// Both of these lines are equivalent:
const newArray1 = array.concat(newLastElement) // [ 3, 2, 1, 0 ]
const newArray2 = array.concat([newLastElement]) // [ 3, 2, 1, 0 ]
push
instruções seguidas por uma chamada parareverse
, em vez de chamarunshift
o tempo todo.