Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.
Array.prototype.push()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julio de 2015.
El métodopush() añade uno o más elementos al final de un array y devuelve la nueva longitud del array.
In this article
Pruébalo
const animals = ["pigs", "goats", "sheep"];const count = animals.push("cows");console.log(count);// Expected output: 4console.log(animals);// Expected output: Array ["pigs", "goats", "sheep", "cows"]animals.push("chickens", "cats", "dogs");console.log(animals);// Expected output: Array ["pigs", "goats", "sheep", "cows", "chickens", "cats", "dogs"]Sintaxis
arr.push(element1[, ...[, elementN]])
Parámetros
elementNLos elementos a añadir al final del array.
Valor devuelto
La nueva propiedadlength del objeto sobre el cual se efectuó la llamada.
Descripción
El métodopush es muy práctico para añadir valores a un array.
push es genérico intencionadamente. Este método puede sercall() oapply() a objetos que representen arrays. El métodopush depende de la propiedadlength para decidir donde empezar a insertar los valores dados. Si el valor de la propiedadlength no puede ser convertido en numérico, el índice 0 es usado. Esto permite la posibilidad de que la propiedadlength sea inexistente, y en este casolength será creado.
Los únicos objetos nativos que se asemejen al array sonstrings objetos, aunque estos no se puedan usar en la aplicación de este método ya que son inmutables.
Ejemplos
>Ejemplo: Añadiendo elementos a un array
El siguiente código crea el arraysports que contiene dos elementos, luego añade 2 elementos más. Tras ejecutar el código,sports contiene 4 elementos: "soccer", "baseball", "football" and "swimming".
var sports = ["soccer", "baseball"];var total = sports.push("football", "swimming");console.log(sports); // ['soccer', 'baseball', 'football', 'swimming']console.log(total); // 4Uniendo dos arrays
This example usesapply() to push all elements from a second array.
Donot use this method if the second array (moreVegs in the example) is very large, because the maximum number of parameters that one function can take is limited in practice. Seeapply() for more details.
var vegetables = ["parsnip", "potato"];var moreVegs = ["celery", "beetroot"];// Merge the second array into the first one// Equivalent to vegetables.push('celery', 'beetroot');Array.prototype.push.apply(vegetables, moreVegs);console.log(vegetables); // ['parsnip', 'potato', 'celery', 'beetroot']Using an object in an array-like fashion
Como se menciona anteriormente,push es intencionadamente genérico, y podemos usar eso a nuestro favor.Array.prototype.push puede funcionar bien con un objeto, como muestra este ejemplo. Ten en cuenta que no se crea un array para almacenar una colección de objetos. En su lugar, almacenamos la colección en el propio objeto y se utiliza el métodocall sobreArray.prototype.push para hacer creer al método que estamos tratando a un array, y simplemente funciona, gracias a la forma en que JavaScript nos permite establecer el contexto de la ejecución.
var obj = { length: 0, addElem: function addElem(elem) { // obj.length is automatically incremented // every time an element is added. [].push.call(this, elem); },};// Let's add some empty objects just to illustrate.obj.addElem({});obj.addElem({});console.log(obj.length);// → 2Tenga en cuenta que aunqueobj no es un array, el métodopush ha incrementado satisfactoriamente la propiedadlength deobj tal y como si se tratara de un array.
Especificaciones
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.push> |