Sužinokite, kokios lanksčios gali būti „JavaScript“ funkcijos ir kaip jas naudoti kurdami lankstų, daugkartinio naudojimo kodą.

„JavaScript“ yra galinga kalba, kurią palaiko dauguma šiuolaikinių naršyklių, ir tai puikus pasirinkimas pradedantiesiems.

Kaip ir daugelis kitų šiuolaikinių programavimo kalbų, „JavaScript“ palaiko funkcijas, leidžiančias išskirti kodo bloką ir pakartotinai jį panaudoti kur nors kitur. Taip pat galite naudoti priskirtas funkcijas kintamiesiems ir perduoti juos kaip parametrus, kaip ir kitas reikšmes.

Kas yra aukštesnės eilės funkcijos?

Paprasčiausias aukštesnės eilės funkcijos apibrėžimas yra funkcija, kuri atlieka operacijas su kitomis funkcijomis, priimdama jas kaip parametrus arba grąžindama jas. Aukštesnės eilės funkcijos yra labai naudojamos funkcinio programavimo paradigma. Jei esate tik pradedu naudoti JavaScript, aukštesnės eilės funkcijas gali būti sunku suvokti.

Apsvarstykite šį pavyzdį:

funkcijatransformuoti(fn) {
leisti resultArray = [];

grąžintifunkcija (masyvas) {
dėl (leisti aš = 0; i < masyvas.ilgis; i++) {
resultArray.push (fn (masyvas[i]))
}

instagram viewer

grąžinti resultArray
}
}

Aukščiau esančiame kodo bloke transformuoti funkcija yra aukštesnės eilės funkcija, kuri perima fn funkcija kaip parametras ir grąžina anoniminę funkciją, kuri įsisavina masyvas kaip parametras.

Tikslas transformuoti Funkcija yra modifikuoti masyvo elementus. Pirma, kodas apibrėžia kintamąjį resultArray ir susieja jį su tuščiu masyvu.

The transformuoti funkcija grąžina anoniminę funkciją, kuri apjungia kiekvieną elementą masyvas, tada perduoda elementą į fn skaičiavimo funkciją ir įstumia rezultatą į resultArray. Užbaigus kilpą, anoniminė funkcija grąžina resultArray.

konst funkcija1 = transformuoti((x) => x * 2)
konsolė.log (function1([ 2, 3, 4, 5, 6 ])) /* [ 4, 6, 8, 10, 12] */

Aukščiau pateiktas kodo blokas priskiria anoniminę funkciją, kurią grąžina transformuoti funkcija į pastovų kintamąjį funkcija1. fn grąžina prekę x kuris yra pakaitalas masyvas[i].

Kodas taip pat perduoda masyvą kaip parametrą funkcija1 ir įrašo rezultatą į konsolę. Trumpesnis būdas tai parašyti būtų toks:

konsolė.log (transform((x) => x * 2)([ 2, 3, 4, 5, 6 ]))

„JavaScript“ turi integruotą aukštesnės eilės funkciją, kuri iš esmės atlieka tą patį, ką transformuoti, kurią aptarsime vėliau.

Tikimės, kad pradedate suprasti, kaip veikia aukštesnės eilės funkcijos JavaScript. Pažvelkite į šią funkciją ir pažiūrėkite, ar galite atspėti, ką ji daro.

funkcijafiltrasIr transformuoti(fn, arrayToBeFiltered, sąlyga) {
leisti filteredArray = [];

dėl (leisti aš = 0; i < arrayToBeFiltered.length; i++) {
jeigu (sąlyga (arrayToBeFiltered[i])) {
leisti y = transformuoti (fn)([ arrayToBeFiltered[i] ])[0]
filteredArray.push (y)
} Kitas {
filteredArray.push (arrayToBeFiltered[i])
}
}

grąžinti filtruotasArray
}

Šis kodo blokas apibrėžia funkciją, kuri atlieka tai, ką galite įtarti – patikrina, ar masyve nėra elementų, kurie atitinka tam tikrą sąlygą, ir transformuoja juos su transformuoti () funkcija. Norėdami naudoti šią funkciją, atlikite šiuos veiksmus:

filtrasAndTransform((x) => x * 2, [ 1, 2, 3, 4, 5 ], (x) => x % 20)

Skirtingai nuo transformuoti funkcija, The filtrasIr transformuoti funkcija naudoja dvi funkcijas kaip parametrus: fn ir sąlyga. The sąlyga funkcija patikrina, ar parametras perduotas, ar yra lyginis skaičius, ir grąžina true. Priešingu atveju jis grąžina klaidingą.

Jeigu sąlyga išsprendžia tiesa (sąlyga tenkinama), tik tada yra transformuoti vadinama funkcija. Ši logika gali būti naudinga, jei dirbate su masyvu ir norite transformuoti tam tikrus elementus. Jei paleisite šį kodą naršyklės konsolėje, turėtumėte gauti tokį atsakymą:

[ 1, 4, 3, 8, 5 ]

Matote, kad funkcija transformuoja tik elementus, kurie atitinka tam tikrą sąlygą, o sąlygos neatitinkančius elementus palieka tokius, kokie yra.

„JavaScript“ aukštesnės eilės funkcija „Array.map()“.

Masyvo metodai, pvz., map() yra aukštesnės eilės funkcijos, kurios palengvina manipuliavimą masyvais. Štai kaip tai veikia.

leisti masyvas = [ 1, 2, 3, 4, 5 ];
leisti transformedArray = array.map((x) => x * 2);

Kai prisijungiate transformedArray naršyklės konsolėje turėtumėte gauti tą patį rezultatą, kurį gavote naudodami transformuoti anksčiau minėta funkcija:

[ 2, 4, 6, 8, 10 ]

array.map() ima du parametrus, pirmasis parametras nurodo patį elementą, o antrasis parametras nurodo elemento indeksą (poziciją masyve). Su tiesiog array.map() galite pasiekti tokius pačius rezultatus kaip ir filtrasIr transformuoti funkcija. Štai kaip tai padaryti:

leisti masyvas = [ 1, 2, 3, 4, 5 ];
leisti transformedArray = array.map((x) => x % 20? x * 2: x);

Aukščiau esančiame kodo bloke funkcija grąžina dabartinio elemento sandaugą ir 2, jei elementas lyginis. Priešingu atveju jis grąžins elementą nepaliestą.

Su įmontuotu žemėlapis funkciją, jums pavyko pašalinti kelių kodo eilučių poreikį, todėl kodas buvo daug švaresnis ir klaidų tikimybė sumažėjo.

„JavaScript“ funkcija „Array.filter()“.

Kai kreipiatės į filtras masyve esantį metodą, įsitikinkite, kad į metodą perduodamos funkcijos grąžinama vertė yra teisinga arba klaidinga. The filtras metodas grąžina masyvą, kuriame yra elementų, kurie atitinka įvykdytą sąlygą. Štai kaip juo naudotis.

funkcijacheckFirstLetter(žodį) {
leisti balsiai = "aeiou"

jeigu (balsių.apima(žodį[0].to LowCase())) {
grąžinti žodis;
} Kitas {
grąžinti;
}
}

leisti žodžiai = [ "Sveiki", "nuo", "tas", "vaikai", "apie", "planeta", "Žemė" ];
leisti rezultatas = žodžiai.filter((x) => checkFirstLetter (x))

Aukščiau esantis kodo blokas kerta žodžius masyvą ir filtruoja bet kurį žodį, kurio pirmoji raidė yra balsė. Kai paleisite kodą ir užregistruosite rezultatas kintamasis, turėtumėte gauti šiuos rezultatus:

[ 'apie', "Žemė" ];

„JavaScript“ funkcija „Array.reduce()“.

The sumažinti () aukštesnės eilės funkcija įgauna du parametrus. Pirmasis parametras yra redukcijos funkcija. Ši mažinimo funkcija yra atsakinga už dviejų reikšmių sujungimą ir tos vertės grąžinimą. Antrasis parametras yra neprivalomas.

Ji apibrėžia pradinę reikšmę, kurią reikia perduoti funkcijai. Jei norite grąžinti visų masyvo elementų sumą, galite atlikti šiuos veiksmus:

leisti a = [ 1, 2, 3, 4, 5];
leisti suma = 0;

dėl (leisti aš = 0; i < a.ilgis; i++) {
suma = suma + a[i];
}

konsolė.log (suma);

Jei paleisite kodą, suma turėtų būti 15. Taip pat galite pasirinkti kitokį požiūrį į sumažinti funkcija.

leisti a = [ 1, 2, 3, 4, 5 ];
suma = a.reduce((c, n) => c + n);
konsolė.log (suma);

Aukščiau pateiktas kodo blokas yra daug švaresnis, palyginti su ankstesniu pavyzdžiu. Šiame pavyzdyje redukcijos funkcija apima du parametrus: c ir n. c nurodo esamą elementą while n nurodo kitą masyvo elementą.

Kai kodas vykdomas, reduktoriaus funkcija pereina per masyvą ir būtinai prie ankstesnio veiksmo rezultato pridedate dabartinę vertę.

Aukštesnės eilės funkcijų galia

„JavaScript“ funkcijos yra galingos, tačiau aukštesnės eilės funkcijos perkelia viską į kitą lygį. Jie plačiai naudojami funkciniam programavimui, todėl galite lengvai filtruoti, sumažinti ir susieti masyvus.

Aukštesnės eilės funkcijos gali padėti sukurti moduliškesnį ir daugkartinį kodą kuriant programas.