108 of 264 menu

Metoda reduce

Metoda reduce redukuje pole na jednu hodnotu. Například, pomocí této metody lze snadno najít součet prvků pole (tj. pole se redukuje na jednu hodnotu - na součet prvků).

Prvním parametrem metoda reduce přijímá funkci, která se postupně provede pro každý prvek pole, počínaje prvním. Do této funkce lze předat 4 parametry. Pokud tyto parametry existují (nejsou povinné), tak do prvního bude automaticky dosazen mezivýsledek, do druhého bude dosazen prvek pole, do třetího - jeho číslo v poli (index), a do čtvrtého - samotné pole.

Mezivýsledek - je proměnná, ve které se bude akumulovat hodnota, kterou metoda reduce vrátí, když projde všechny prvky pole. Například, lze do ní postupně ukládat součet prvků pole: nejprve vložit první prvek, při příštím průchodu cyklem již součet prvního prvku a druhého, při dalším průchodu - součet prvního, druhého a třetího. A tak dále, dokud pole neskončí. Funkce, kterou reduce přijímá, by měla vracet novou hodnotu mezivýsledku.

Druhým parametrem metody reduce se určuje počáteční hodnota mezivýsledku. Pokud není uvedena, bude rovna prvnímu prvku pole a zpracování prvků začne od druhého prvku.

Syntaxe

pole.reduce(function(mezivýsledek, prvek, index, pole) { return nový mezivýsledek; }, počáteční hodnota);

Příklad

Najděme součet prvků pole:

let arr = [1, 2, 3, 4, 5, 6]; let res = arr.reduce(function(sum, elem) { return sum + elem; }, 0); console.log(res);

Výsledek provedení kódu:

21

Příklad

Najděme součet všech kladných čísel pole:

let arr = [1, -2, -3, 4, 5, -6]; let res = arr.reduce(function(sum, elem) { if (elem >= 0) { return sum + elem; } else { return sum; } }, 0); console.log(res);

Výsledek provedení kódu:

10

Viz také

  • metoda reduceRight,
    provádějící podobnou operaci
  • metoda filter,
    který umožňuje filtrovat prvky pole
  • metody map a forEach,
    které umožňují aplikovat funkci na každý prvek pole
  • metody some a every,
    provádějící kontrolu pole
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout