Resumo : neste tutorial, você aprenderá como usar o push()
método JavaScript Array para adicionar um ou mais elementos ao final de um array.
Introdução ao método JavaScript Array push()
O Array.prototype.push()
método adiciona um ou mais elementos ao final de um array e retorna o comprimento do novo array.
O seguinte mostra a sintaxe do push()
método:
push(newElement);
push(newElement1,newElement2);
push(newElement1,newElement2,...,newElementN);
O push()
método retorna o novo valor da length
propriedade do objeto array no qual você chama o método.
Exemplos de métodos JavaScript Array push()
Vejamos alguns exemplos de uso do push()
método.
1) Usando o array push() para anexar um elemento a um array
O exemplo a seguir adiciona o número 40
ao final da numbers
matriz:
let numbers = [10, 20, 30];
const length = numbers.push(40);
console.log(length);
console.log(numbers);
Linguagem de código: JavaScript ( javascript )
Saída:
4
[ 10, 20, 30, 40 ]
Linguagem de código: JSON/JSON com comentários ( json )
Como funciona.
Primeiro, defina a numbers
matriz que possui três números:
let numbers = [10, 20, 30];
Linguagem de código: JavaScript ( javascript )
Segundo, adicione o número 40
ao final do numbers
array usando o push()
método e atribua o valor de retorno à length
variável:
const length = numbers.push(40);
Linguagem de código: JavaScript ( javascript )
Terceiro, produza a length
variável e o numbers
array:
console.log(length);
console.log(numbers);
Linguagem de código: JavaScript ( javascript )
A imagem a seguir ilustra como o exemplo funciona:
2) Usando o array push() para adicionar vários elementos ao final de um array
O exemplo a seguir mostra como usar o push()
método para adicionar vários elementos ao final de uma matriz:
let numbers = [10, 20, 30];
const length = numbers.push(40, 50);
console.log(length);
console.log(numbers);
Linguagem de código: JavaScript ( javascript )
Saída:
5
[ 10, 20, 30, 40, 50 ]
Linguagem de código: JSON/JSON com comentários ( json )
A imagem a seguir ilustra como funciona:
3) Usando push() para anexar elementos de um array a outro array
Suponha que você tenha duas matrizes colors
e cmyk
:
let colors = ['red', 'green', 'blue'];
let cmyk = ['cyan', 'magenta', 'yellow', 'back'];
Linguagem de código: JavaScript ( javascript )
E você deseja anexar os elementos de cmyk
ao colors
array.
Para fazer isso, você pode usar um for...of
loop que itera sobre os elementos do cmyk
array e usar o push()
método para anexar cada elemento ao colors
array assim:
let colors = ['red', 'green', 'blue'];
let cmyk = ['cyan', 'magenta', 'yellow', 'back'];
for (const color of cmyk) {
colors.push(color);
}
console.log(colors);
Linguagem de código: JavaScript ( javascript )
Saída:
['red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'back']
Linguagem de código: JSON/JSON com comentários ( json )
A partir do ES6, você pode usar o operador spread ( ...
) para espalhar os elementos do cmyk
array e enviá-los para o colors
array ao mesmo tempo, assim:
let colors = ['red', 'green', 'blue'];
let cmyk = ['cyan', 'magenta', 'yellow', 'back'];
colors.push(...cmyk);
console.log(colors);
Linguagem de código: JavaScript ( javascript )
Usando o método JavaScript Array push() com objetos semelhantes a array
O Array.prototype.push()
método foi projetado para ser genérico propositalmente. Portanto, você pode chamar o push()
método com call()
ou apply()
nos objetos semelhantes a array.
Nos bastidores, o push()
método usa a length
propriedade para determinar a posição de inserção dos elementos. Se o push()
método não puder converter a length
propriedade em um número, ele será usado 0
como valor para o índice.
Veja o exemplo a seguir:
let greetings = {
0: 'Hi',
1: 'Hello',
length: 2,
append(message) {
[].push.call(this, message);
},
};
greetings.append('Howdy');
greetings.append('Bonjour');
console.log(greetings);
Linguagem de código: JavaScript ( javascript )
Saída:
{
'0': 'Hi',
'1': 'Hello',
'2': 'Howdy',
'3': 'Bonjour',
length: 4,
add: [Function: add]
}
Linguagem de código: JavaScript ( javascript )
Como funciona.
Primeiro, defina o greetings
objeto que possui três propriedades 1
, 2
e length
um método append()
:
let greetings = {
0: 'Hi',
1: 'Hello',
length: 2,
append(message) {
[].push.call(this, message);
},
};
Linguagem de código: JavaScript ( javascript )
O append()
método chama o push()
método de um objeto array para anexar ao message
objeto greetings
.
Segundo, chame append()
o método do greetings
objeto:
greetings.append('Howdy');
greetings.append('Bonjour');
Linguagem de código: JavaScript ( javascript )
Em cada chamada, push()
usa a length
propriedade do greetings
objeto para determinar a posição onde anexa o novo elemento e aumenta a length
propriedade em um.
Como resultado, o greetings
objeto possui mais dois elementos no índice 2
e 3
. E a length
propriedade está 4
atrás das ligações.
Terceiro, envie o greetings
objeto para o console:
console.log(greetings);
Linguagem de código: JavaScript ( javascript )
Para permitir que o método append() aceite várias mensagens, você pode modificar o método assim:
let greetings = {
0: 'Hi',
1: 'Hello',
length: 2,
append() {
[].push.call(this, ...arguments);
},
};
greetings.append('Howdy', 'Bonjour');
console.log(greetings);
Linguagem de código: JavaScript ( javascript )
Como funciona.
Primeiro, remova o parâmetro message do método anexar.
Segundo, espalhe os elementos do arguments
objeto e empurre-os para o greetings
objeto.
Resumo
- Use o método de array JavaScript
push()
para acrescentar um ou mais elementos a um array. - O
push()
método também funciona com um objeto semelhante a um array.