Řetězení metod

Když vypíšete pole, uvidíte ho tak, jak se píše v kódu, s hranatými závorkami a uvozovkami. Na obyčejný text ho převede metoda join(). Spojí všechny prvky do jednoho textu a mezi ně vloží text, který jí dáte:

const jmena = ["Toník", "Leo", "Žofka"];
console.log(jmena.join(", "));
console.log(jmena.join(" a "));
console.log(jmena.join());
Toník, Leo, Žofka
Toník a Leo a Žofka
Toník,Leo,Žofka

Bez argumentu dá join() mezi prvky jen čárku, bez mezery.

filter() i map() vracejí pole a každé pole tyto metody má. Další metodu proto můžete zavolat rovnou na výsledku, aniž byste ho nejdřív ukládali do proměnné. Tomu se říká řetězení:

const jmenaMladych = zvirata
    .filter((zvire) => zvire.vek < 5)
    .map((zvire) => zvire.jmeno);

console.log(jmenaMladych.join(", "));
Žofka, Pepík

Řetěz čtěte shora dolů: vezmi zvířata, nech jen ta mladší než 5 let a udělej z nich pole jmen. Je to totéž jako dva kroky s proměnnou mezi nimi:

const mlada = zvirata.filter((zvire) => zvire.vek < 5);
const jmenaMladych = mlada.map((zvire) => zvire.jmeno);

Když každou metodu napíšete na samostatný řádek, který začíná tečkou, čte se řetěz snáz. Pořád je to ale jeden příkaz, a tak středník patří až úplně na konec. Na konci řetězu může být i join(): zvirata.map((zvire) => zvire.jmeno).join(", "). Vrací text, ne pole, a proto musí být poslední.

Typické chyby:

  • Špatné pořadí. V řetězu zvirata.map((zvire) => zvire.jmeno).filter((zvire) => zvire.vek < 5) jde map() první a nechá jen jména. Jméno je text a žádný vek nemá, takže podmínka nikdy neplatí a výsledek je []. Nejdřív prvky vyberte, potom je převeďte.
  • Středník uprostřed řetězu. Za .filter(...); příkaz skončí a další řádek, který začíná tečkou, je chyba: SyntaxError: Unexpected token '.' (nečekaná tečka).

Pokyny

Vypište teploty celého týdne na jeden řádek, oddělené čárkami: Teploty: 18, 23, 25, 19, 22, 16, 21. Použijte map() a join().

Pod to vypište názvy dnů, kdy bylo tepleji než 20 stupňů, pomocí řetězu filter(), map() a join(): Teplé dny: úterý, středa, pátek, neděle.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

Zpět

5/10

Další