Pole Array JavaScript znižuje metódu () - W3KI
Ak ste si niekedy prečítali štítok s výživovou hodnotou, môžete v JavaScripte znížiť porozumenie metódy ().
Metóda redukcie v JavaScripte vám poskytuje jednoduchý spôsob, ako vziať sériu hodnôt a skombinovať ich do jednej hodnoty alebo do súčtu matíc založených na viacerých kategóriách.
Páni, to je veľa v jednej vete, tak urobme krok späť tu.
Samozrejme, vždy môžete použiť cyklus for na iteráciu poľa a vykonanie určitej akcie s každou hodnotou. Pokiaľ ale nepoužívate metódy ako filter (), mapa () a redukcia (), bude sa kód ťažšie čítať. Ostatní vývojári budú musieť starostlivo prečítať každú slučku, aby pochopili účel. Týmto sa vytvorí viac šancí na chyby, pretože budete musieť vytvoriť viac premenných na sledovanie jednotlivých hodnôt.
Metódy mapovania spustia funkciu na každom prvku v počiatočnom poli predtým, ako ho uložia do výsledného poľa.
A obmedzte metódy na kombinovanie prvkov z počiatočného poľa do konečnej hodnoty alebo poľa hodnôt.
Uvedomil som si, že to bola akási strava. Od veľmi jednoduchých metód, ako je počítanie kalórií, až po komplikovanejšie diéty, ako je Atkins alebo Weight Watchers, je cieľom destilovať všetko jedlo, ktoré by ste mohli jesť počas dňa, do jednej hodnoty. (alebo hodnoty), aby ste zistili, či ste na dobrej ceste k zníženiu hmotnosti.

Poďme teda do toho! Aby ste pochopili tento návod, musíte mať skúsenosti so slučkami.
Simulácia redukcie pomocou slučky
Tu je rýchly spôsob, ako ukázať zníženie funkčnosti () pomocou slučky pre. Predpokladajme, že máte matricu s počtom kalórií z 5 samostatných potravín, ktoré ste jedli počas dňa. Chcete, aby som vedel, koľko ste celkovo spotrebovali kalórií. Tu je kód.
Je to celkom jednoduché. Vytvorte premennú, ktorá bude obsahovať výslednú sumu, a potom ju pridávajte, keď prechádzate po poli. Je však stále potrebné zaviesť novú premennú a slučka neposkytuje nijaké informácie o účele slučky.
Jednoduchý príklad redukcie
Naučte sa, ako dosiahnuť ten istý cieľ pomocou metódy redukcie ().
- Redukcia je maticová metóda, takže začneme s počtami rozsahu kalórií.
- Používa funkciu spätného volania, ktorá beží na každom prvku v poli.
- Používa príkaz na návrat, aby ukázal, ako by sa mala hodnota akumulovať po každej iterácii matice.
Takže redukcia má nejaký koncept pamäte. Pri prechode cez každý prvok v matici sa hodnoty vysledujú v súčte s argumentom. V našom predchádzajúcom príklade sme museli deklarovať novú premennú mimo rozsahu slučky, aby sme si hodnoty „zapamätali“.
Táto interaktívna verzia slúži na porovnanie diétnej verzie s numerickou.
Môže sa zdať, že nie je veľký rozdiel v čitateľnosti medzi týmto a znakom (). Ale keď (alebo iný vývojár) potrebuje naskenovať stovky riadkov kódu, zľava vám poskytne rýchlu informáciu o účele bloku kódu.
Príklad 2 Používanie objektov
Zatiaľ som sa pozeral na jednorozmernú sieť. Ale ak môžete iterovať cez celý rad čísel, môžete iterovať aj cez celý rad objektov. Pridajte ku každej položke názov, aby sme zistili, čo počas dňa vlastne jeme.
Na raňajky si zjedol steak. s nejakým ovocím. potom na obed šalát a hranolky. potom konečne zmrzlina na večeru. Je to sakra deň.
Na koniec sme pridali aj 0, takže metóda vie, že pridávame k číslu začínajúcemu na 0, nie k reťazcu.
Našťastie môžete vidieť tok, ako prechádza cez matricu. Pri prechádzaní každou položkou sa jej množstvo zvyšuje, aby predstavovalo celkové kalórie spotrebované počas dňa. Ide o to, dať tieto hodnoty do veľkého množstva kalorických kotlov počas dňa.
Príklad 3 Používanie viacerých kategórií
Takže pokiaľ ide o kalórie, prečo do pekla existuje toľko rôznych diét? Nechystám sa Wade v súhrne Tes - všeobecne, o „najlepšom“ spôsobe chudnutia panuje veľa nezhôd. Niektorí odporúčajú počítať iba kalórie, zatiaľ čo iní sa zameriavajú na bielkoviny, sacharidy, tuky a na množstvo ďalších faktorov.
Na chvíľu si predstavme, že chcete zmeniť kód, aby ste mohli hodnotiť stravu na základe ľubovoľného spoločného stravovacieho systému. Pre každý druh potravy budete musieť sledovať sacharidy a tuky. Potom to budete musieť na konci roka všetko zosumarizovať, aby ste zistili, koľko gramov ste v každej kategórii spotrebovali. Toto sú naše potravinové objekty s nesprávnymi nutričnými hodnotami.
Teraz musíme spustiť metódu redukcie (). Nemožno to však všetko sledovať v jednej hodnote. Chceme zachovať naše kategórie. Naša batéria musí byť teda objektom rovnakých kategórií ako pole.
Tu je rýchly interaktívny diagram,
Pri prechádzaní každým prvkom sa bude meniť hodnota konkrétnej vlastnosti v objekte. Ak objekt ešte nemá vlastnosť so správnym názvom, vytvorí ju. Tu je kód.
Vedierka používame ako objekt na klasifikáciu hodnôt na základe ich názvu vlastnosti. Používame tento názov obchodu? Je to preto, že je to nepodstatné - chceme iba čísla, aby sme mohli analyzovať úspešnosť vašej stravy na nasledujúci deň.
Ako vidíte, v našej výrobe nastal problém. Máme pole pre meno, ktoré je nastavené na „steak“. Nechceme, aby ste ukladali mená! Musíme teda určiť ďalší argument - počiatočnú hodnotu.
Tento argument prichádza po spätnom volaní a chceme inicializovať kalórie, sacharidy a tuky na rozsah 0, takže naša metóda redukcie vie, že sú to jediné páry tri kľúč/hodnota, ktoré použijeme pre argument vedierka. Tu si môžete pozrieť príklad.