Sådan udfyldes et array med nuller eller objekter i JavaScript

I JavaScript kan du bruge Array.fill() metode til at udfylde et array med et nul eller en hvilken som helst anden værdi som et objekt eller en streng. Denne metode erstatter alle elementer i et array med den værdi, du vil udfylde arrayet med, og returnerer det modificerede array.

For eksempel, hvis du vil oprette et array med fem slots og udfylde det med 0 , kan du gøre følgende:

const array = new Array(5).fill(0);

console.log(array);

// [0, 0, 0, 0, 0]

Du kan også angive positionen for, hvor du skal starte (standard 0). ) og slut (standard array.length ) fyldet. Som standard vil alle elementer blive udfyldt. Her er et eksempel, der specificerer besætningsstillinger:

const fruits = ['🍕', '🍔', '🍰', '🍩', '🍣'];

const filled = fruits.fill('🎂', 2, 4);

console.log(filled);

// ['🍕', '🍔', '🎂', '🎂', '🍣']

Array.fill() metoden fungerer godt til JavaScript uforanderlige værdier som strenge, tal og booleans. Hvad hvis du vil fylde et array med objekter?

const filled = new Array(3).fill({ pizza: '🍕' });

console.log(filled);

// [{ pizza: '🍕' }, { pizza: '🍕' }, { pizza: '🍕' }]

Ovenstående eksempel udfylder et array med objekter, men hver plads i arrayet refererer til det samme objekt. Så hvis du ændrer objektet som nedenfor:

filled[0].pizza = '🍰';

Det vil opdatere hvert objekt i arrayet, fordi de alle refererer til det samme objekt:

[{ pizza: '🍰' }, { pizza: '🍰' }, { pizza: '🍰' }]

For at fylde et array med objekter bør du hellere bruge Array.from() metoden. Denne metode opretter et nyt array fra et array-lignende eller iterabelt objekt:

const filled = Array.from({ length: 3 }, () => ({ pizza: '🍕' }));

filled[0].pizza = '🍰';

console.log(filled);

// [{ pizza: '🍰' }, { pizza: '🍕' }, { pizza: '🍕' }]

Browserkompatibilitet

Array.fill() metode er en del af ES6 og virker kun i moderne browsere. Du kan dog bruge en polyfill til at understøtte gamle browsere som Internet Explorer.

Hvis du vil vide mere om JavaScript-arrays, og hvordan du bruger dem til at gemme flere stykker information i en enkelt variabel, kan du tage et kig på denne artikel.