Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

This is a new technology, part of the ECMAScript 2015 (ES6) standard.
This technology's specification has been finalized, but check the compatibility table for usage and implementation status in various browsers.

El método fill()   rellena todos los elementos de un arreglo desde el índice start hasta el índice end, con el valor estático de value. 

Sintaxis

arr.fill(value[, start = 0[, end = this.length]])

Parametros

value
Valor con el que se va rellenar el arreglo
start
Opcional. Por defecto es el 0 que es el inicio
end
Opcional. Por defecto es el final del índice
retorna el valor que fue modoficado

Descripción

Los elementos a llenar son  [principio, final).

El método fill  toma hasta tres argumentos; value, start y end. El primero va a ser el valor que queremos asignar al arreglo y luego los argumentos start y end que son opcionales,  con valores por defecto es cero y la propiedad length del objeto, respectivamente.

Si start es negativo, éste es tratado como length+star, donde length es el largo del arreglo, sí end es negativo, este es tratado como lenght+end.

La función  fill es intencionalmente genérica, no require que el valor de  this sea un objeto Array necesariamente.

El método  fill es mutador, pudiendo cambiar al objeto accedido por this, y devolverlo, y no sólo retornar una copia de este.

Ejemplos

[1, 2, 3].fill(4);               // [4, 4, 4]
[1, 2, 3].fill(4, 1);            // [1, 4, 4]
[1, 2, 3].fill(4, 1, 2);         // [1, 4, 3]
[1, 2, 3].fill(4, 1, 1);         // [1, 2, 3]
[1, 2, 3].fill(4, -3, -2);       // [4, 2, 3]
[1, 2, 3].fill(4, NaN, NaN);     // [1, 2, 3]
Array(3).fill(4);                // [4, 4, 4]
[].fill.call({ length: 3 }, 4);  // {0: 4, 1: 4, 2: 4, length: 3}

Polyfill

if (!Array.prototype.fill) {
  Array.prototype.fill = function(value) {

    // Steps 1-2.
    if (this == null) {
      throw new TypeError('this is null or not defined');
    }

    var O = Object(this);

    // Steps 3-5.
    var len = O.length >>> 0;

    // Steps 6-7.
    var start = arguments[1];
    var relativeStart = start >> 0;

    // Step 8.
    var k = relativeStart < 0 ?
      Math.max(len + relativeStart, 0) :
      Math.min(relativeStart, len);

    // Steps 9-10.
    var end = arguments[2];
    var relativeEnd = end === undefined ?
      len : end >> 0;

    // Step 11.
    var final = relativeEnd < 0 ?
      Math.max(len + relativeEnd, 0) :
      Math.min(relativeEnd, len);

    // Step 12.
    while (k < final) {
      O[k] = value;
      k++;
    }

    // Step 13.
    return O;
  };
}

Specifications

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Array.prototype.fill' en esta especificación.
Standard Initial definition.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 45 (36 [1]) 31 (31) Sin soporte Sin soporte 7.1
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support Sin soporte Sin soporte 31.0 (31) Sin soporte Sin soporte 8.0

[1] Available behind a preference. In chrome://flags, activate the entry “Enable Experimental JavaScript”.

See also

Etiquetas y colaboradores del documento

 Colaboradores en esta página: luisNavasArg, eljonims, cesarve77
 Última actualización por: luisNavasArg,