A JavaScript tömb csökkenti () módszer - W3KI
Ha valaha is olvasott táplálkozási címkét, akkor csökkentheti a módszer () megértését a JavaScript-ben.
A JavaScript csökkentési módszere egyszerű módot kínál értékek sorozatának összevonására, és egyetlen kategóriába vagy több kategórián alapuló mátrixösszegbe vonására.
Hú, ez nagyon sok egy mondatban, úgyhogy lépjünk hátra itt.
Természetesen mindig használhat egy for for ciklust egy tömbön keresztüli iterációhoz, és bizonyos műveleteket hajthat végre az egyes értékeken. De ha nem olyan módszereket használ, mint a filter (), a map () és a reduc (), akkor a kód nehezebben olvasható. Más fejlesztőknek gondosan el kell olvasniuk az egyes hurkokat, hogy megértsék a célt. Ez pedig több hibát okoz, mivel az egyéni értékek nyomon követéséhez több változót kell létrehoznia.
A Methods Map egy függvényt futtat egy kezdeti tömb minden elemén, mielőtt eltárolja azt egy utolsó tömbben.
És csökkentse azokat a módszereket, amelyekkel az elemek egy kezdeti tömbből egy végső értékbe vagy értéktömbbe egyesíthetők.
Rájöttem, hogy ez egyfajta diéta. A nagyon egyszerű módszerektől, például a kalóriaszámlálástól a bonyolultabb étrendekig, mint például az Atkins vagy a Súlyfigyelők, a cél az, hogy az összes ételt, amelyet napközben elfogyaszthatna, egyetlen értékben lepárolhassa. (vagy értékek), hogy megnézzék, jó úton jár-e a fogyáshoz.

Szóval ugorjunk bele! A bemutató megértéséhez csak tapasztalattal kell rendelkeznie a hurkok használatához.
A redukció szimulálása hurokkal
Itt egy gyors módja annak, hogy bemutassuk a csökkentett funkcionalitást () egy hurok segítségével. Tegyük fel, hogy van egy mátrixod, amely 5 külön étel kalóriatartalmát tartalmazza, amelyeket a nap során ettél. Azt akarja, hogy tudjam, hány teljes kalóriát fogyasztott el. Itt van a kód.
Nagyon egyszerű. Hozzon létre egy változót a végső összeg megtartására, majd adja hozzá hozzá, amikor végigfut a mátrixon. De még mindig be kell vezetni egy új változót, és a hurok nem ad nyomot a hurok célját illetően.
Egyszerű példa a redukcióra
Megtanulják, hogyan érhető el ugyanaz a cél a csökkentés () módszerével.
- A redukció egy mátrix módszer, ezért a kalóriatartomány számlálásával kezdjük.
- Visszahívási funkciót használ, amely a tömb minden elemén fut.
- Egy return utasítás segítségével megmutatja, hogy az értéknek hogyan kell felhalmozódnia a mátrix minden egyes iterációja után.
Tehát a redukciónak van némi memóriafogalma. Amint áthalad a mátrix egyes elemein, az értékeket összegezve követjük az argumentumhoz. Előző példánkban egy új változót kellett deklarálnunk a ciklus hatókörén kívül, hogy "emlékezzünk" az értékekre.
Ezzel az interaktív verzióval hasonlíthatja össze a diétás verziót a numerikus verzióval.
Úgy tűnik, hogy ez és a () között nem sok különbség van az olvashatóságban. De amikor neked (vagy egy másik fejlesztőnek) több száz sornyi kódot kell beolvasni, akkor a kedvezmény gyors tippet ad a kódblokk céljára.
2. példa Objektumok használata
Most néztem meg az egydimenziós hálózatot. De ha teljes számtartományon keresztül képes iterálni, akkor objektumok teljes skáláján is iterálhat. Adjon nevet minden elemhez, hogy kiderüljön, mit is eszünk valójában a nap folyamán.
Te egy steaket ettél reggelire. némi gyümölccsel. majd salátát és hasábburgonyát ebédre. aztán végül fagylalt vacsorára. Ez egy fene egy nap.
A végén 0-t is hozzáadtunk, így a módszer úgy tudja, hogy 0-nál kezdődő számhoz adunk hozzá egy karakterláncot.
Szerencsére láthatja az áramlást, amikor áthalad a mátrixon. Az egyes tételek áttekintésekor az összeg növekszik, hogy a nap folyamán elfogyasztott összes kalóriát jelezze. A lényeg az, hogy ezeket az értékeket a nap folyamán nagy számú kalória-kazánba helyezzük.
3. példa Több kategória használata
Tehát ami a kalóriákat illeti, miért a fenébe létezik ennyi különböző étrend? Nem megyek a Wade-re a Tes összefoglalójában - általános, sok nézeteltérés van a fogyás "legjobb" módjával kapcsolatban. Egyesek azt ajánlják, hogy csak a kalóriákat számolják, mások pedig a fehérjét, a szénhidrátokat, a zsírokat és bármilyen más tényezőt vizsgálnak.
Képzeljük el egy pillanatra, hogy meg akarja változtatni a kódot, hogy bármilyen étrend-rendszer alapján értékelhesse az étrendet. Minden egyes élelmiszertípusnál nyomon kell követnie a szénhidrátokat és zsírokat. Ezután az év végén összefoglalnia kell mindezt, hogy kiderüljön, hány grammot fogyasztott az egyes kategóriákban. Itt vannak a hamis tápértékű élelmiszer-tárgyaink.
Most le kell futtatnunk a reduc () metódust. De mindez nem követhető egyetlen értékben. Meg akarjuk tartani a kategóriáinkat. Tehát az akkumulátorunknak objektumnak kell lennie, ugyanazokkal a kategóriákkal, mint a tömb.
Itt egy gyors interaktív ábra,
Az egyes elemek áttekintésekor az objektumban egy adott tulajdonság értéke megváltozik. Ha az objektumnak még nincs megfelelő nevű tulajdonsága, akkor létrehozza. Itt van a kód.
A vödröket objektumként használjuk az értékek tulajdonságnevük szerinti osztályozásához. Használjuk az üzlet nevét? Ez azért van, mert jelentéktelen - csak a számokat szeretnénk, hogy elemezhessük másnapi étrended sikerességét.
Mint látható, probléma volt a gyártásunkban. Van egy névmezőnk, amelynek értéke "steak". Nem akarjuk, hogy neveket tároljon! Tehát meg kell adnunk egy másik érvet - a kezdeti értéket.
Ez az érv a fordított hívás után következik, és inicializálni szeretnénk a kalóriákat, szénhidrátokat és zsírokat a 0 tartományba, így a redukciós módszerünk tudja, hogy csak ezeket a háromkulcsos/értékpárokat fogjuk használni a vödör argumentumhoz. Itt láthat egy példát.