--- title: Array.prototype.fill() slug: Web/JavaScript/Reference/Global_Objects/Array/fill tags: - Functies translation_of: Web/JavaScript/Reference/Global_Objects/Array/fill ---
De fill() functie verandert alle elementen in een array naar statische waarde. Vanaf de eerste index (standaard 0) tot de laatste index (standaard array.length). De functie geeft de aangepaste array terug.
De bron van dit interactieve voorbeeld is opgeslagen in een GitHub repository. Als u wilt bijdragen aan het interactieve voorbeelden project, clone dan graag https://github.com/mdn/interactive-examples en stuur ons een pull verzoek.
arr.fill(value[, start[, end]])
valuestart {{optional_inline}}0.end {{optional_inline}}arr.length.De aangepaste array, gevuld met value.
start negatief is, dan wordt het uitgevoerd als array.length + start.end negatief is, dan wordt het uitgevoerd als array.length + end.fill is bedoeld als generiek: de this waarde hoeft geen Array object te zijn.fill is een muterende functie: het verandert de array zelf een geeft deze array terug, niet een kopie ervan.if (!Array.prototype.fill) {
Object.defineProperty(Array.prototype, 'fill', {
value: 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 finalValue = relativeEnd < 0 ?
Math.max(len + relativeEnd, 0) :
Math.min(relativeEnd, len);
// Step 12.
while (k < finalValue) {
O[k] = value;
k++;
}
// Step 13.
return O;
}
});
}
Als verouderde JavaScript engines ondersteund moeten worden, welke Object.defineProperty niet ondersteunen, dan is het beter om helemaal geen polyfill Array.prototype functies te gebruiken, aangezien ze dan niet non-enumerable te maken zijn.
[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}
// Een enkel object, waaraan door iedere positie in de array gerefereerd wordt:
let arr = Array(3).fill({}) // [{}, {}, {}]
arr[0].hi = "hi" // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]
| Specificatie |
|---|
| {{SpecName('ESDraft', '#sec-array.prototype.fill', 'Array.prototype.fill')}} |
{{Compat("javascript.builtins.Array.fill")}}