Garatzaile batek zereginak burutzeaz gain, zereginak modu eraginkorragoan egitea ere beharrezkoa da. Gaur egun JavaScript-en eskuragarri dauden hainbat liburutegi daude garatzaileei aldagaiekin lan egitea errazten dietena. Tutorial honetan Lodash liburutegiaren funtzio ohikoenak nola erabiltzen ikasiko dugu.
Oraindik Lodash probatu ez baduzu, orain da momentua. Lodash gaur egungo JavaScript erabilgarritasun pakete bat da, matrizeekin, zenbaki osoekin, objektuekin, testuekin eta beste datu mota batzuekin lan egitea errazten duena.
Era askotako objektuei aurre egiten lagunduko dizu eta denbora aurreztuko dizu metodo generikoak kodetzeko beharra ezabatuz. Zure kodea garbiagoa izango da lerro gutxiagorekin eta arakatzaile guztietan funtzionatuko du. Dagoeneko erabiltzen ez baduzu, arretaz aztertu beharko zenuke.
Lodash ez hartzea galera handia da gure JavaScript kode-oinarrientzat. Akatsik gabeko eta dotorea den lanean ditugun erronketarako irtenbide dotorea da, eta hura erabiltzeak gure kodea irakurgarriagoa eta kudeagarriagoa bihurtuko du.
Goazen Lodash-en funtzio ezagunenetan (edo ez!) sakondu eta deskubri dezagun liburutegi hau zeinen erabilgarria eta polita den.
1. _.sortedUniq
Bikoiztutako balio guztiak ez dira honekin itzuliko. Ordenatutako arrayetarako soilik denez, hau batez ere abiadura arrazoiengatik erabiltzen da. Hau da erabilgarria array handi batekin ari bazara. Abiadura hobetu nahi baduzu, ordenatu zure array eta erabili ordenatutako matrizeekin hobeto funtzionatzen duten metodoak.
Lodash-ek honen antzekoak diren beste funtzio batzuk ditu. .sortedIndex, .sortedIndexBy, .sortedIndexOf, .sortedLastIndex, .sortedLastIndexBy, .sortedLastIndexOf, .sortedUniq, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy.
2. _.murriztu
_.murriztu iragazki funtzio baten antzekoa da. Desberdintasun bakarra da itzulitako objektuaren forma hautatzeko aukera duzula. Normala da, esaten dudana ulertzen ez baduzu; adibide bat dago horretarako.
Funtsean, adinaren arabera sailkatutako erabiltzaileak dituen objektu berri bat itzultzen dugu, baina 18 eta 59 urte bitartekoentzat bakarrik. Lodash laguntzaile funtzio hau gehien erabiltzen denetako bat da. ES6-n ere sartzen da. Bi akats tipiko ere adierazi nahi nituzke: gogoratu emaitza funtzioaren amaieran itzultzea eta emaitzaren balio lehenetsia hirugarren parametro gisa ematea (hemen).
3. _.lortu eta ._ezarri
Honetarako, zertxobait engainatuko zaitut ia gauza bera egiten duten bi funtzio erakutsiz. _.get-ek objektu batetik propietate-balio bat itzultzen du, eta _.set, beno, asmatu duzu, ezarri propietate bat balio batekin. Ez da ezer berezirik, bere bidetik jabetza batera sar zaitezkela izan ezik.
Ikus dezagun adibide bat.
Bidea ez bada existitzen _.set deitzean, sortuko da. Ez da "Ezin dira zehaztu gabeko 'elementuak' jabetza ezarri" errore gehiagorik izango. Bidea existitzen ez bada, _.get-ek undefined itzuliko du errore baten ordez. Bidea definitu gabe geratzen bada, balio lehenetsi bat ere eman dezakezu (hirugarren parametroa).
4. _.aurkitu
Objektu bakar bat aurkitzeko array batean begizta egin beharrean, _.find erabil dezakegu. Hori ona da, baina ez da _.find egin dezakeen gauza bakarra. Kode lerro bakar batekin, objektu bat ere aurki dezakezu propietate ugari erabiliz. Begira ezazu!
5. _.keyBy
Nire gogokoenetako bat _.keyBy da. Nahiko erabilgarria da atributu jakin bat duen objektu bat lortzen saiatzean. Demagun 100 blog-sarrera ditugula eta "34abc" id-a duena hartu nahi dugula. Nola egingo dugu? Ea zer gertatzen den! Metodo honek objektu-bilduma bat antolatzen lagun zaitzake zerbitzari batek array gisa ematen badu. Funtzio bat bigarren argumentu gisa ere erabil daiteke.
6. _.Bakoitzerako
Metodo honek objektu-matrize baten gainean errepikatuko du banan-banan, nahi duzun logika egiteko aukera emanez. Lehenengo adibide honetan, erabiltzaile-objektuen zerrenda baten gainean ibiliko naiz, haien izenak eta abizenak batuz FullName izeneko propietate berri bat sortzeko.
forHauetako bakoitzak bi parametro onartzen ditu. Begiztatzen ari garen array-a lehen parametroa da. Bigarren argumentua iterazio-funtzioa da, lehen parametroa elementu indibidualaren erreferentzia izanik eta bigarrena iterazioko uneko indizea izanik.
7. _.mapa
Mapak, forEach bezala, balio sorta batean errepikatzen du. Mapa funtzioak, berriz, iterazio funtzioak emandako balio-matrize berri bat itzultzen du. Hemen gure forEach adibideko erabiltzaile bilduma bera erabiltzen ari gara. _.map erabil dezakegu erabiltzaileen izen osoen array berdindua duen aldagai berri bat sortzeko.
8. _.aldea
Diferentzia funtzioak lehen eta bigarren matrizeen artean desberdinak diren balio-matrize berri bat sortuko du. Garrantzitsua da kontuan hartzea argudioen kokapenak emaitzetan eragina duela.
9. _.lortu
_.get() funtzioak objektu baten barruan elementu bat aurkitzen lagun diezaguke. _.get() funtzioari balio lehenetsi bat ezarri diezaiokegu itzultzeko, emandako bidetik elementuren bat aurkitzen ez bada. _.get() funtzioak hiru parametro hartzen ditu, lehenengoa elementu bat lortu nahi dugun objektua da. Bidea bigarrena da. Hirugarren balioa elementu bat kokatu ezin bada itzuli nahi dugun balio lehenetsia da.
10. _.aurkitu
_find() funtzioa _.get() metodoaren berdina dela dirudi. _.find() funtzioak, _.get() metodoak bezala, hiru parametro onartzen ditu. Hala ere, _.get() metodoa ez bezala, lehen argumentua array edo objektu bat izan daiteke. Bigarren argumentuak iterazio bakoitzean deituko den funtzioa zehazten du. Hirugarren sarrera bildumaren hasierako indizea da. _.find() funtzioak bilduma bateko elementu bakoitzaren gainean errepikatzen duelako.
11. _.taldeBy
Sortu funtzio baten (edo ausaz hautatutako propietate-izen baten arabera) izena duen objektu bat, balio bakoitza gako bera duten objektuen array bat izanik.
12. _.ezarri
_.set() metodoa _.get() metodoaren alderantzizkoa da. Elementu baten balioa aldatuko du bide jakin batean. Objektua edo matrizea da lehen parametroa, bidea bigarrena eta ezarri nahi duzun balioa hirugarrena.
13. _.batu
Object.assign-en antzera funtzionatzen du, azpiko egituran errepikatzen den izan ezik, objektu sakonagoak eguneratzeko haiek ordezkatu beharrean.
14. ._desbarru
Adibide zuzen samarra da hau. "Marka diakritikoak konbinatzen" guztiak kentzen dira. Horrela “é” “e” bihurtzen da. Nazioartekotzea eta lokalizazioa dagoenean, praktika ona da bilaketa-funtzioetarako testua kentzea.
15. _.errebote
Hau da Lodash estrategia eraginkorrenetako bat. Baliteke ere zaila izatea zer egiten duen eta noiz erabili behar duzun ulertzea. _.debounce() metodoak funtzio bat itzultzen du. _.debounce() metodoaren funtzioak deialdia atzeratuko du funtzioa azkenekoz deitu zenetik milisegundo kopuru zehatz bat igaro arte.
Ondorioa
Lodash JavaScript hizkuntzaren luzapen indartsua da. Ahalegin minimoarekin, kode labur eta eraginkorra eraiki daiteke. Lodash ere guztiz modularra da. Azkenean bere funtzionalitate batzuk zaharkituta egon daitezkeen arren, uste dut onura ugari emango dizkiela garatzaileei, JS hizkuntzaren bilakaera bultzatzen duen bitartean.
Espero dut Lodash-en gaitasun gutxi hauek Lodash-ek zein indartsua izan daitekeen array, objektu eta bildumekin lan egiten ikustean. Bisita dezakezu dokumentazioa eskaintzen dituen beste aukera ugari aztertzeko.
Utzi erantzun bat