La propiedad Array.prototype representa el prototipo del constructor Array y le permite agregar nuevas propiedades y métodos a todos los objetos Array.

// Si JavaScript no proporciona un método first() de forma nativa,
// agrega un nuevo método que devuelve el primer elemento de una matriz.

if (!Array.prototype.first) {
  Array.prototype.first = function() {
    return this[0];
  }
}

Descripción

Las instancias Array heredan de Array.prototype. Al igual que con todos los constructores, puede cambiar el prototipo del constructor del objeto para realizar cambios en todas las instancias Array . Por ejemplo, puede agregar nuevos métodos y propiedades para extender todos los objetos Array. Esto se usa para polyfilling, por ejemplo.

Un hecho poco conocido: Array.prototype en sí es un Array:

Array.isArray(Array.prototype); // true

Atributos de la propiedad Array.prototype
Sobrescribir No
Numerable No
Configurable No

Propiedades

Array.prototype.constructor
Especifica la función que crea el prototipo de un objeto.
Array.prototype.length
Refleja el número de elementos en un array.
Array.prototype[@@unscopables]
Un símbolo que contiene nombres de propiedades para excluir de un ámbito vinculante with.

Métodos

Métodos de mutación

Estos métodos modifican el array:

Array.prototype.copyWithin()
Copia una secuencia de elementos dentro del array.
Array.prototype.fill()
Rellena todos los elementos de un array desde un índice de inicio hasta un índice de fin con un valor determinado.
Array.prototype.pop()
Elimina el último elemento de un array y devuelve dicho elemento.
Array.prototype.push()
Añade uno o más elementos al final de un array y devuelve la nueva longitud del array.
Array.prototype.reverse()
Invierte el orden de los elementos de un array — el primero será el último y el último será el primero.
Array.prototype.shift()
Elimina el primer elemento de un array y devuelve dicho elemento.
Array.prototype.sort()
Ordena los elementos de un array y devuelve el array.
Array.prototype.splice()
Añade o elimina elementos de un array.
Array.prototype.unshift()
Añade uno o más elementos al principio del array y devuelve la nueva longitud del array.

Métodos de consulta

Estos métodos no modifican el array y devuelven alguna representación del array.

Array.prototype.concat()
Devuelve un nuevo array compuesto por este array unido con otro(s) array(s) y/o valor(es).
Array.prototype.includes()
Determina si un array contiene cierto elemento, devolviendo true o false apropiadamente.
Array.prototype.indexOf()
Devuelve el primer (menor) índice de un elemento dentro del array que sea igual al valor especificado, o -1 si no contiene dicho valor.
Array.prototype.join()
Une todos los elementos de un array en una cadena de texto.
Array.prototype.lastIndexOf()
Devuelve el último (mayor) índice de un elemento dentro del array que sea igual al valor especificado, o -1 si no contiene dicho valor.
Array.prototype.slice()
Extrae una sección de un array y devuelve un nuevo array.
Array.prototype.toSource()
Devuelve el array literal que representa al propio array especificado; puedes usar este valor para crear un nuevo array. Reemplaza al método Object.prototype.toSource().
Array.prototype.toString()
Devuelve una cadena de texto que representa el array y sus elementos. Reemplaza el método Object.prototype.toString().
Array.prototype.toLocaleString()
Devuelve una cadena de texto localizada que representa el array y sus elementos. Reemplaza el método Object.prototype.toLocaleString().

Métodos de iteración

Muchos métodos toman como argumentos funciones que son llamadas mientras se procesa el array. Cuando estos métodos son llamados, la longitud (length) del array es muestreado, y cualquier elemento añadido por encima de esta longitud dentro de la función (callback) no es visitado. Otros cambios sobre el array (establecer el valor o eliminar un elemento) podría afectar el resultado de la operación si el método visita el elemento después. Mientras que el comportamiento especifico de estos métodos en muchos casos es bien definido, no deberías delegar sobre eso con la finalidad de no confundir a otros que podrían leer tu código. Si debes modificar el array, copialo en un nuevo array en su lugar.

Array.prototype.entries()
Devuelve un nuevo objeto Array Iterator que contiene los pares clave/valor para cada índice en el array.
Array.prototype.every()
Devuelve true si cada elemento en este array satisface la función de testeo proporcionada.
Array.prototype.filter()
Crea un nuevo array con todos los elementos de este array para los cuales la función de filtrado proporcionada devuelve true.
Array.prototype.find()
Devuelve el elemento hallado en el array si un elemento en el array satisface la función de testeo proporcionada, o undefined si no se halla ninguno.
Array.prototype.findIndex()
Devuelve el índice hallado en el array si un elemento en el array satisface la función de testeo proporcionada, o -1 si no se halla ninguno.
Array.prototype.forEach()
Llama a una función para cada elemento del array.
Array.prototype.keys()
Devuelve un nuevo Array Iterator que contiene las claves para cada índice en el array.
Array.prototype.map()
Crea un nuevo array con el resultado de llamar a la función proporcionada sobre cada elemento de este array.
Array.prototype.reduce()
Aplica una función que recibe un acumulador y cada valor del array (de izquierda a derecha) para reducirlo a un único valor.
Array.prototype.reduceRight()
Aplica una función que recibe un acumulador y cada valor del array (de derecha a izquierda) para reducirlo a un único valor.
Array.prototype.some()
Devuelve true si al menos un elemento en este array satisface la función de testeo proporcionada.
Array.prototype.values()
Devuelve un nuevo objeto Array Iterator que contiene los valores para cada índice en el array.
Array.prototype[@@iterator]()
Devuelve un nuevo objeto Array Iterator que contiene los valores para cada índice en el array.

Métodos genéricos (no estándar)

Muchos métodos en el objeto Javascript Array son diseñados para ser generalmente llamados para todos los objetos que "parecen" Arrays. Es decir, pueden ser usados sobre cualquier objeto que tenga una propiedad longitud (length), y puedan ser accedidos usando nombres de propiedades numéricos (como con la indexación array[5]). Algunos métodos, tales como join, sólo leen la longitud y propiedades numéricas del objeto sobre el cual son llamados. Otros, como reverse, requieren que las propiedades numéricas del objeto y la longitud sean mutables; estos métodos, por tanto, no pueden ser llamados sobre objetos como String, los cuales no permiten que su longitud o propiedades numéricas sintetizadas sean establecidas.

Especificaciones

 

Especificación Estado Comentario
ECMAScript 1st Edition (ECMA-262) Standard Definición inicial.
ECMAScript 5.1 (ECMA-262)
La definición de 'Array.prototype' en esta especificación.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Array.prototype' en esta especificación.
Standard

Se agregaron los métodos copyWithin(), fill(), entries(), keys(), values(), find(), findIndex().

ECMAScript 2016 (ECMA-262)
La definición de 'Array.prototype' en esta especificación.
Standard Se agregó el método includes().

 

Compatibilidad con navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Soporte básicoChrome Soporte completo SiEdge Soporte completo SiFirefox Soporte completo 1IE Soporte completo SiOpera Soporte completo SiSafari Soporte completo SiWebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Soporte completo SiFirefox Android Soporte completo 4Opera Android Soporte completo SiSafari iOS Soporte completo SiSamsung Internet Android Soporte completo Sinodejs Soporte completo Si

Leyenda

Soporte completo  
Soporte completo
 

Ver también

Etiquetas y colaboradores del documento

Colaboradores en esta página: lajaso, humbertaco
Última actualización por: lajaso,