Jak naplnit pole nulami nebo objekty v JavaScriptu

V JavaScriptu můžete použít Array.fill() metoda k naplnění pole nulou nebo jakoukoli jinou hodnotou, jako je objekt nebo řetězec. Tato metoda nahradí všechny prvky v poli hodnotou, kterou chcete pole naplnit, a vrátí upravené pole.

Například, pokud chcete vytvořit pole s pěti sloty a naplnit jej 0 , můžete provést následující:

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

console.log(array);

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

Můžete také určit pozici, kde začít (výchozí 0 ) a konec (výchozí array.length ) náplň. Ve výchozím nastavení budou všechny prvky vyplněny. Zde je příklad, který specifikuje obsazení pozic:

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

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

console.log(filled);

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

Array.fill() metoda funguje skvěle pro neměnné hodnoty JavaScriptu, jako jsou řetězce, čísla a booleany. Co když chcete vyplnit pole objekty?

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

console.log(filled);

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

Výše uvedený příklad naplní pole objekty, ale každý slot v poli odkazuje na stejný objekt. Pokud tedy upravíte objekt, jak je uvedeno níže:

filled[0].pizza = '🍰';

Aktualizuje každý objekt v poli, protože všechny odkazují na stejný objekt:

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

Chcete-li vyplnit pole objekty, měli byste raději použít metodu Array.from(). Tato metoda vytvoří nové pole z objektu podobného poli nebo iterovatelného objektu:

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

filled[0].pizza = '🍰';

console.log(filled);

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

Kompatibilita prohlížeče

Array.fill() metoda je součástí ES6 a funguje pouze v moderních prohlížečích. Můžete však použít polyfill pro podporu starých prohlížečů, jako je Internet Explorer.

Chcete-li se dozvědět více o JavaScriptových polích a jak je používat k ukládání více informací do jedné jediné proměnné, podívejte se na tento článek.