Baseline Widely available
El método fill()
cambia todos los elementos en un arreglo por un valor estático, desde el Ãndice start (por defecto 0) hasta el Ãndice end (por defecto array.length
). Devuelve el arreglo modificado.
const array1 = [1, 2, 3, 4];
// Fill with 0 from position 2 until position 4
console.log(array1.fill(0, 2, 4));
// Expected output: Array [1, 2, 0, 0]
// Fill with 5 from position 1
console.log(array1.fill(5, 1));
// Expected output: Array [1, 5, 5, 5]
console.log(array1.fill(6));
// Expected output: Array [6, 6, 6, 6]
Sintaxis
arr.fill(value[, start = 0[, end = this.length]])Parámetros
value
Valor con el que se va a rellenar el arreglo. (Nótese que todos los elementos en el arreglo tendrán este mismo valor).
start
Opcional
Ãndice inicial, por defecto 0.
end
Opcional
Ãndice final, por defecto this.length
.
El arreglo modificado, rellenado con valor
.
start
es negativo, se interpreta como array.length + start
.end
es negativo, se interpreta como array.length + end
.fill
es genérico de forma intencional: no requiere que su valor this
sea un objeto Array
.fill
es un método mutador: modifica el arreglo sobre el que se invoca; no devuelve una copia de éste.[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, 3); // [1, 2, 3]
[1, 2, 3].fill(4, -3, -2); // [4, 2, 3]
[1, 2, 3].fill(4, NaN, NaN); // [1, 2, 3]
[1, 2, 3].fill(4, 3, 5); // [1, 2, 3]
Array(3).fill(4); // [4, 4, 4]
[].fill.call({ length: 3 }, 4); // {0: 4, 1: 4, 2: 4, length: 3}
// Objects by reference.
var arr = Array(3).fill({}); // [{}, {}, {}];
arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]
Polyfill
if (!Array.prototype.fill) {
Object.defineProperty(Array.prototype, "fill", {
value: function (value) {
// Pasos 1-2.
if (this == null) {
throw new TypeError("esto es nulo o no definido");
}
var O = Object(this);
// Pasos 3-5.
var len = O.length >>> 0;
// Pasos 6-7.
var start = arguments[1];
var relativeStart = start >> 0;
// Paso 8.
var k =
relativeStart < 0
? Math.max(len + relativeStart, 0)
: Math.min(relativeStart, len);
// Pasos 9-10.
var end = arguments[2];
var relativeEnd = end === undefined ? len : end >> 0;
// Paso 11.
var final =
relativeEnd < 0
? Math.max(len + relativeEnd, 0)
: Math.min(relativeEnd, len);
// Paso 12.
while (k < final) {
O[k] = value;
k++;
}
// Paso 13.
return O;
},
});
}
Especificaciones Compatibilidad con navegadores Ver también
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4