Ce face Array.prototype.fill
fill scrie aceeași valoare pe toate pozițiile de la inceput până la sfarsit (exclus). Fără acești parametri, umple tot tabloul. Tabloul este modificat și returnat.
Atenție la obiecte: fill({}) pune același obiect pe toate pozițiile. Dacă modifici unul, se modifică toate.
Parametri
| Parametru | Descriere |
|---|---|
valoare |
Valoarea scrisă. |
inceput, sfarsit |
Opționali. Zona umplută; acceptă valori negative. |
Ce returnează
Același tablou, modificat.
Exemple
Exemplul 1: Umplere totală și parțială
console.log(new Array(5).fill(0));
console.log([1, 2, 3, 4, 5].fill("x", 1, 3));
console.log([1, 2, 3, 4, 5].fill(9, -2));
Rezultat
[ 0, 0, 0, 0, 0 ]
[ 1, 'x', 'x', 4, 5 ]
[ 1, 2, 3, 9, 9 ]
Exemplul 2: Capcana obiectelor comune
const gresit = new Array(3).fill([]);
gresit[0].push("Ana");
console.log(gresit);
const corect = Array.from({ length: 3 }, () => []);
corect[0].push("Ana");
console.log(corect);
Rezultat
[ [ 'Ana' ], [ 'Ana' ], [ 'Ana' ] ]
[ [ 'Ana' ], [], [] ]
Greșeli frecvente
- Creezi o matrice cu
new Array(3).fill(new Array(3).fill(0)). Toate rândurile sunt același tablou; foloseșteArray.fromcu o funcție.
Comenzi înrudite
Array.of / Array(): Creează un tablou din valorile primite; diferența față de constructorul Array().Array.from: Creează un tablou nou din orice listă: text, Set, Map, NodeList sau un obiect cu length.Array.prototype.copyWithin: Copiază o bucată din tablou peste altă poziție din același tablou, fără să schimbe lungimea.