Josh Pitzalis

Kuva luottoa Karthik Srinivas. Kiitos Karthik.

JavaScript on vähentää menetelmä on yksi kulmakivistä toimiva ohjelma. Katsotaanpa selvittää, miten se toimii, kun sinun pitäisi käyttää sitä, ja joitakin hienoja asioita se voi tehdä.

Perus Vähentäminen

Käyttää sitä, kun: Sinulla on erilaisia määriä ja haluat lisätä ne kaikki ylös.,

const euros = ;const sum = euros.reduce((total, amount) => total + amount); sum // 118.11

Miten voit käyttää sitä:

  • tässä esimerkki, Vähentää hyväksyy kaksi parametria, koko ja nykyinen määrä.
  • vähennysmenetelmän syklit jokaisen joukon numeron läpi paljon kuin se olisi for-Loopissa.
  • Kun silmukka alkaa kokonaisarvo on useita vasemmalla (29.76) ja nykyinen määrä on sen vieressä (41.85).
  • tässä nimenomaisessa esimerkissä haluamme lisätä nykyisen summan kokonaissummaan.,
  • laskenta toistetaan jokaisen määrä array, mutta joka kerta, nykyinen arvo muuttuu seuraavaan numeroon array, liikkuu hyvin.
  • kun jonossa ei ole enää numeroita, menetelmä palauttaa kokonaisarvon.

JavaScript

: n Vähennysmenetelmän ES5-versio Jos et ole aiemmin käyttänyt ES6-syntaksia, älä anna yllä olevan esimerkin pelotella sinua., Se on täsmälleen sama kuin kirjoittaminen:

var euros = ; var sum = euros.reduce( function(total, amount){ return total + amount});sum // 118.11

käytämme const sijaan var ja me korvata sana function kanssa ”rasva nuoli” (=>), kun parametrit, ja me jättää sana ”paluu”.

voin käyttää ES6 syntaksi loput esimerkkejä, koska se on suppeampi ja jättää vähemmän tilaa virheitä.

keskiarvon löytäminen JavaScript

Pelkistysmenetelmällä summan kirjaamisen sijaan voisi jakaa summan matriisin pituuden mukaan ennen lopullisen arvon palauttamista.,

tapa tehdä tämä on hyödyntää muita argumentteja pelkistysmenetelmässä. Ensimmäinen näistä argumenteista on indeksi. Paljon kuin for-loop, indeksi viittaa siihen, kuinka monta kertaa pelkistin on katsonut yli array. Viimeinen argumentti on itse array.

kartta ja suodatin vähennyksinä

Jos vähennystoiminnon avulla voi sylkeä keskiarvon ulos, voit käyttää sitä miten haluat.,

voit esimerkiksi kaksinkertainen koko, tai puoli jokainen numero ennen kuin lisäät ne yhteen, tai käyttää if-lauseen sisällä vähennysventtiilillä vain lisätä numeroita, jotka ovat suurempia kuin 10. Pointtini on, että Menetelmä Vähentää JavaScript antaa sinulle mini CodePen, jossa voit kirjoittaa mitä logiikkaa haluat. Se toistaa logiikan kullekin joukolle ja palauttaa sitten yhden arvon.

asia on niin, että aina ei tarvitse palauttaa yhtä arvoa. Voit vähentää array uudeksi array.,

esimerkiksi, lets vähentää joukko määriä toiseen matriisiin, jossa jokainen määrä on kaksinkertaistunut. Tätä varten meidän täytyy asettaa alkuarvo meidän akku tyhjälle array.

alkuarvo on kokonaisparametrin arvo vähennyksen alkaessa. Asetat alkuperäisen arvon lisäämällä pilkun ja sen jälkeen alkuperäisen arvon sisällä suluissa mutta jälkeen curly henkselit (pultattu alla olevassa esimerkissä).

const average = euros.reduce((total, amount, index, array) => { total += amount return total/array.length}, 0);

aiemmissa esimerkeissä alkuarvo oli nolla, joten jätin sen pois., Jättämällä alkuperäisen arvon, kokonaissumma oletusarvo ensimmäinen määrä array.

asettamalla alkuarvon tyhjään matriisiin voimme sitten työntää jokaisen summan kokonaissummaan. Jos haluamme vähentää joukon arvoja toiseen ryhmään, jossa jokainen arvo kaksinkertaistuu, meidän on työnnettävä summa * 2. Sitten palautamme kokonaissumman, kun ei ole enää mitään työntämismääriä.

const euros = ;const doubled = euros.reduce((total, amount) => { total.push(amount * 2); return total;}, );doubled // 

olemme luoneet uuden array, jossa jokainen summa tuplataan. Voisimme myös suodattaa pois numerot emme halua kaksinkertaistaa lisäämällä if lausuma sisällä meidän reducer.,

nämä toiminnot ovat karttaa ja suodatusmenetelmiä, jotka on kirjoitettu uudelleen pelkistysmenetelmäksi.

näissä esimerkeissä olisi järkevämpää käyttää karttaa tai suodatinta, koska ne ovat yksinkertaisempia käyttää. Hyöty käyttämällä vähentää tulee pelata, kun haluat kartan ja suodatin yhdessä ja sinulla on paljon tietoa mennä yli.

Jos ketjutat kartan ja suodatat yhdessä, teet työn kahdesti. Suodatat jokaisen arvon ja kartoitat loput arvot. Kanssa vähentää voit suodattaa ja sitten kartoittaa yhdellä pass.,

Käytä karttaa ja suodatinta, mutta kun alat ketjuttaa paljon menetelmiä yhteen, tiedät nyt, että tietojen vähentäminen sen sijaan on nopeampaa.

Luo Tally kanssa Vähentää Menetelmä JavaScript

Käyttää sitä, kun: Sinulla on kokoelma kohteita ja haluat tietää, kuinka monta kunkin kohteen ovat kokoelma.

arvojärjestyksessä olevien kohteiden mukaan alkuarvomme on oltava tyhjä esine, ei tyhjä array kuten edellisessä esimerkissä.

Koska aiomme palauttaa objektin voimme nyt tallentaa avain-arvo-pareja yhteensä.,

fruitBasket.reduce( (tally, fruit) => { tally = 1; return tally;}, {})

ensimmäinen pass, haluamme nimen ensimmäinen avain on meidän nykyinen arvo, ja haluamme antaa sille arvo 1.

Tämä antaa meille esineen, jossa kaikki hedelmät ovat avaimia, joista jokaisen arvo on 1. Haluamme, että jokaisen hedelmän määrä kasvaa, jos ne toistuvat.

Voit tehdä tämän, meidän toinen silmukka tarkistaa, jos meidän koko olla avain nykyisen hedelmä vähennysventtiilillä. Jos se ei toimi, luomme sen. Jos se tekee niin lisäämme määrää yhdellä.

fruitBasket.reduce((tally, fruit) => { if (!tally) { tally = 1; } else { tally = tally + 1; } return tally;}, {});

olen rewrote täsmälleen samaa logiikkaa enemmän ytimekkäästi ylös.,

Madaltuminen joukko paneelit kanssa Vähentää Menetelmä JavaScript

Voimme käyttää vähentää litistää sisäkkäisiä määrät yhdeksi array.

asetamme alkuarvon tyhjään taulukkoon ja sitten sovitamme nykyisen arvon kokonaislukuun.

const data = , , ];const flat = data.reduce((total, amount) => { return total.concat(amount);}, );flat // 

Useammin kuin ei, tietoa on sisäkkäisiä monimutkaisempia tapoja. Esimerkiksi, sanotaan haluamme vain kaikki värit datamuuttuja alla.

const data = }, {a: 'tired', b: 'panther', c: }, {a: 'sad', b: 'goldfish', c: }];

aiomme astua jokaisen kohteen läpi ja vetää värit esiin. Teemme tämän osoittamalla summaa.c jokaiselle array-objektille., Tämän jälkeen käytämme etusilmukkaa työntääksemme jokaisen sisäkkäisen joukon arvon ulos yhteensä.

jos tarvitsemme vain yksilöllisen numeron, voimme tarkistaa, että Numero on jo olemassa yhteensä ennen kuin työnnämme sitä.

Putkiston kanssa Vähentää

mielenkiintoinen näkökohta vähentää menetelmä JavaScript on, että voit vähentää yli toiminnot sekä numeroita ja jousille.

Let ’ s say we have a collection of simple mathematical functions. näiden toimintojen avulla voimme lisätä, säätää, kaksinkertaistaa ja puolittaa määrän.,

jostain syystä meidän täytyy kasvattaa, sitten tuplata, sitten säätää summa.

voit kirjoittaa funktion, joka ottaa syötön, ja palauttaa (tulo + 1) * 2 -1. Ongelma on, että tiedämme, että meidän täytyy kasvattaa määrä kolme kertaa, niin tuplaa se, niin vähennä se, ja sitten puolittaa se jossain vaiheessa tulevaisuudessa. Meidän ei tarvitse kirjoittaa toimintoamme uusiksi joka kerta, joten käytämme vähennystä putken luomiseen.

putki on termi, jota käytetään sellaisten funktioiden luettelossa, jotka muuttavat jonkin alkuarvon lopulliseksi arvoksi., Putkemme koostuu kolmesta toiminnostamme siinä järjestyksessä, että haluamme käyttää niitä.

let pipeline = ;

sen Sijaan, vähentää joukko arvoja, me vähentää yli, että putki-toimintoja. Tämä toimii, koska asetamme alkuperäisen arvon määräksi, jonka haluamme muuttaa.

const result = pipeline.reduce(function(total, func) { return func(total);}, 1);result // 3

Koska putki on matriisi, se voidaan helposti muuttaa. Jos haluamme vähennys jotain kolme kertaa, sitten tupla-se, vähennä se , ja puolittaa sen sitten me vain muuttaa putki.

var pipeline = ;

vähentää toiminto pysyy täsmälleen sama.,

Typeriä Virheitä välttää

Jos et syötä alkuperäisen arvon, vähentää olettaa ensimmäinen kohde joukko on alkuperäinen arvo. Tämä toimi hyvin muutamissa ensimmäisissä esimerkeissä, koska olimme laatimassa luetteloa numeroista.

Jos yrität kasata hedelmiä, ja jätät alkuarvon pois, asiat menevät oudoiksi. Ei kirjoittamalla alkuarvo on helppo virhe tehdä, ja yksi ensimmäisistä asioista sinun pitäisi tarkistaa, kun virheenkorjaus.

Toinen yleinen virhe on unohtaa palauttaa yhteensä. Sinun täytyy palauttaa jotain vähentää toiminto töihin., Aina kaksinkertainen tarkistaa ja varmista, että olet todella palauttaa arvon haluat.

Työkaluja, Vinkkejä & Viittauksia

  • Kaikki tämä viesti tuli fantastinen video sarja munapää soitti Käyttöön Vähentää. Annan Mykola Bilokonskille täyden kunnian ja olen kiitollinen hänelle kaikesta, mitä nyt tiedän JavaScript-ohjelman Vähennysmenetelmän käytöstä. Olen yrittänyt kirjoittaa paljon siitä, mitä hän kertoo omin sanoin liikunta ymmärtämään paremmin kunkin käsitteen., Lisäksi minun on helpompi viitata artikkeliin, toisin kuin videoon, kun minun täytyy muistaa, miten tehdä jotain.
  • MDN Vähentää asiakirjat tarrat, mitä kutsuin yhteensä accumulator. On tärkeää tietää tämä, koska useimmat ihmiset viittaavat siihen Akkuna, jos luet siitä verkossa. Jotkut ihmiset kutsuvat sitä prev kuten edellinen arvo. Kaikki viittaa samaan asiaan. Oli helpompi ajatella kokonaisuutta, kun opettelin vähentämistä.,
  • Jos haluat harjoitella käyttäen vähentää suosittelen rekisteröitymisestä freeCodeCamp ja täyttämällä niin monta väli-algoritmeja kuin voit käyttää vähentää.
  • Jos esimerkissä olevat ”const” – muuttujat ovat sinulle uusia, kirjoitin toisen artikkelin ES6-muuttujista ja siitä, miksi niitä kannattaa käyttää.
  • kirjoitin myös artikkelin nimeltä Ongelmia Silmukoita, jotka selittävät, miten käyttää map() ja suodatin (), jos ovat uusia sinulle.

Kiitos lukemisesta! Jos haluat saada ilmoituksen, kun kirjoitan uuden artikkelin, kirjoita sähköpostiosoitteesi tähän.,

ja jos tykkäsit artikkelista, jaa se sosiaalisessa mediassa, jotta muut löytävät sen.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *