Procházení pole
Cykly a pole patří k sobě. Cyklem for můžete projít indexy pole od 0 až po poslední a přečíst každý prvek:
const hry = ["Fotbal", "Tenis", "Golf"];
for (let i = 0; i < hry.length; i++) {
console.log(hry[i]);
}Vypíše:
Fotbal
Tenis
GolfPočítadlo i začíná na 0, tedy na prvním indexu. Podmínka i < hry.length cyklus ukončí po posledním indexu, kterým je hry.length - 1. Častou chybou je i <= hry.length: cyklus pak proběhne ještě jednou, přečte hry[3], který neexistuje, a vypíše undefined. Díky .length cyklus funguje pro pole jakékoli délky, i když do něj pomocí .push() přidáte další prvky.
Procházení všech prvků je tak časté, že na ně má JavaScript jednodušší cyklus, for...of:
const hry = ["Fotbal", "Tenis", "Golf"];
for (const hra of hry) {
console.log(hra);
}Fotbal
Tenis
GolfZápis for (const hra of hry) čtěte jako „pro každou hru z pole hry“; anglické of tu znamená „z“. V každém průchodu je v proměnné hra další prvek: nejdřív "Fotbal", pak "Tenis" a nakonec "Golf". Index ani .length vůbec nepotřebujete. Proměnnou pojmenujte podle jednoho prvku pole: hra z pole hry, jmeno z pole jmena.
Proč může být hra vytvořená pomocí const, když počítadlo klasického for musí být let? Protože for...of pro každý průchod vytvoří novou proměnnou hra a během průchodu ji nic nemění. Počítadlo i je jedna proměnná, kterou i++ stále mění.
Který cyklus tedy použít? for...of, když chcete projít prvky jeden po druhém. Je kratší a v indexech se nespletete. Klasický for, když potřebujete i index, třeba abyste prvky očíslovali, nebo když chcete procházet pozpátku či některé prvky přeskočit.
Jak psát:
Pokyny
Napište cyklus for...of, který vypíše každý prvek pole spoluhraci na samostatný řádek.
Pod něj napište klasický cyklus for s indexem, který vypíše spoluhráče i s pořadovým číslem: 1. Ondřej, 2. Tomáš, 3. Honza a 4. Pavel. Číslo je index plus jedna.