Ne nur necesas por programisto plenumi taskojn, sed ankaŭ necesas fari taskojn en pli efika maniero. Ekzistas pluraj bibliotekoj haveblaj en JavaScript hodiaŭ, kiuj faciligas labori kun variabloj por programistoj. Ni lernos kiel uzi la plej oftajn funkciojn de la biblioteko Lodash en ĉi tiu lernilo.
Se vi ankoraŭ ne provis Lodash, nun estas la momento. Lodash estas nuntempa JavaScript-utilo-pakaĵo, kiu simpligas labori kun tabeloj, entjeroj, objektoj, tekstoj kaj aliaj datumtipoj.
Ĝi helpos vin trakti diversajn objektojn kaj ŝparos al vi tempon forigante la bezonon kodi ĝeneralajn metodojn. Via kodo estos pli pura kun malpli da linioj kaj funkcios en ĉiuj retumiloj. Se vi ne jam uzas ĝin, vi zorge pripensu ĝin.
Ne adopti Lodash estas grandega perdo por niaj JavaScript-kodbazoj. Ĝi estas senerara kaj eleganta solvo al oftaj defioj, kiujn ni havas en la laboro, kaj uzi ĝin nur faros nian kodon pli legebla kaj regebla.
Ni enprofundu en iujn el la pli popularaj (aŭ ne!) Lodash-funkcioj kaj malkovru kiom ege utila kaj bela estas ĉi tiu biblioteko.
1. _.sortitaUniq
Ĉiuj duobligitaj valoroj ne estos resenditaj kun ĉi tiu. Ĉar ĝi estas nur por ordigitaj tabeloj, ĉi tio estas ĉefe uzata pro rapidaj kialoj. Ĉi tio utilas nur se vi traktas grandan tabelon. Se vi volas plibonigi rapidecon, ordigu vian tabelon kaj uzu metodojn, kiuj funkcias pli bone kun ordigitaj tabeloj.
Lodash havas kelkajn aliajn funkciojn, kiuj estas similaj al ĉi tio. Vi povas rigardi .sortedIndex, .sortedIndexBy, .sortedIndexOf, .sortedLastIndex, .sortedLastIndexBy, .sortedLastIndexOf, .sortedUniq, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .
2. _.redukti
_.redukti similas al filtrila funkcio. La nura diferenco estas, ke vi havas la eblon elekti la formon de la redonita objekto. Estas normale, se vi ne komprenas tion, kion mi diras; estas ekzemplo por ĝi.
En esenco, ni resendas novan objekton enhavantan uzantojn klasigitajn laŭ aĝo, sed nur por tiuj en aĝo de 18 ĝis 59. Ĉi tiu helpa funkcio de Lodash estas unu el la plej ofte uzataj. Ĝi ankaŭ estas inkluzivita en ES6. Mi ankaŭ volus atentigi du tipajn erarojn: memoru redoni la rezulton ĉe la konkludo de la funkcio, kaj provizi la defaŭltan valoron por la rezulto kiel la tria parametro (ĉi tie).
3. _.akiri kaj ._starigi
Por ĉi tiu, mi iom trompos vin montrante du funkciojn, kiuj plenumas preskaŭ la samon. _.get redonas posedaĵon de objekto, kaj _.set, nu, vi divenis, starigas posedaĵon kun valoro. Nenio unika, krom ke vi povas aliri posedaĵon per ĝia vojo.
Ni rigardu ekzemplon.
Se la vojo ne ekzistas dum vokado de _.set, ĝi estos generita. Ne estos plu "Ne povas agordi posedaĵon 'erojn' de nedifinitaj" eraroj. Se la vojo ne ekzistas, _.get revenos nedifinita anstataŭ eraro. Se la vojo solvas al nedifinita, vi ankaŭ povas provizi defaŭltan valoron (tria parametro).
4. _.trovi
Anstataŭ buklo tra tabelo por trovi ununuran objekton, ni povas uzi _.find. Tio estas bona, sed ĝi ne estas la nura afero _.trovi povas fari. Kun ununura linio de kodo, vi ankaŭ povas malkovri objekton uzante multajn ecojn. Rigardu!
5. _.keyBy
Unu el miaj plej ŝatataj estas _.keyBy. Ĝi estas sufiĉe utila kiam oni provas akiri objekton kun certa atributo. Supozu, ke ni havas 100 blogajn enirojn kaj volas kapti tiun kun la identigilo "34abc". Kiel ni faros ĝin? Ni vidu kio okazas! Ĉi tiu metodo povas helpi vin aranĝi objektokolekton se servilo provizas ĝin kiel tabelo. Funkcio ankaŭ povas esti uzata kiel la dua argumento.
6. _.porĈiu
Ĉi tiu metodo ripetos super aro da objektoj unu post la alia, permesante al vi fari kian ajn logikon vi volas. En ĉi tiu unua ekzemplo, mi cirklos super listo de uzantobjektoj, kunfandante iliajn antaŭnomojn kaj familinomojn por krei novan posedaĵon nomitan fullName.
porĈiu el ĉi tiuj akceptas du parametrojn. La tabelo, kiun ni rondiras, estas la unua parametro. La dua argumento estas ripeta funkcio, kie la unua parametro estas la individua objektoreferenco kaj la dua estas la aktuala indekso de la ripeto.
7. _.mapo
Mapo, kiel forEach, ripetas tra aro da valoroj. La mapo-funkcio, aliflanke, resendas novan tabelon de valoroj disponigitaj per la ripeta funkcio. Ni uzas la saman kolekton de uzantoj kiel en nia forEach ekzemplo ĉi tie. Ni povas uzi _.map por generi novan variablon kiu havas platigitan tabelon de kompletaj nomoj de ĉiuj uzantoj.
8. _.diferenco
La diferencfunkcio produktos novan tabelon de valoroj kiuj malsamas inter la unua kaj dua tabeloj. Necesas noti, ke la lokoj de la argumentoj influas la rezultojn.
9. _.akiri
La funkcio _.get() povas helpi nin trovi elementon ene de objekto. Ni povas agordi defaŭltan valoron por la funkcio _.get() reveni se elemento ne troviĝas ĉe la provizita vojo. La funkcio _.get() prenas tri parametrojn, la unua el kiuj estas la objekto de kiu ni deziras akiri elementon. La vojo estas la dua. La tria valoro estas la defaŭlta valoro, kiun ni volas redoni, se elemento ne povas troviĝi.
10. _.trovi
La funkcio _find() povas ŝajni esti identa al la metodo _.get(). La funkcio _.find(), kiel la metodo _.get(), akceptas tri parametrojn. Tamen, male al la _.get() metodo, la unua argumento povas esti tabelo aŭ objekto. La dua argumento specifas la funkcion kiu estos vokita sur ĉiu ripeto. La tria enigo estas la komenca indekso de la kolekto. Ĉar la funkcio _.find() ripetas super ĉiu elemento en kolekto.
11. _.grupoPer
Kreu objekton nomitan per la rezulto de funkcio (aŭ hazarde elektita posedaĵnomo), kie ĉiu valoro estas tabelo de objektoj kun la sama ŝlosilo.
12. _.aro
La metodo _.set() estas la inversa de la metodo _.get(). Ĝi ŝanĝos la valoron de elemento ĉe donita vojo. La objekto aŭ tabelo estas la unua parametro, la vojo estas la dua, kaj la valoro, kiun vi volas agordi, estas la tria.
13. _.kunigi
Ĝi funkcias simile al Object.assign, krom ke ĝi ripetiĝas profunde en la subesta strukturo por ĝisdatigi la pli profundajn objektojn prefere ol anstataŭigi ilin.
14. ._deburr
Ĉi tio estas sufiĉe simpla ekzemplo. Ĉiuj "kombinaj diakritaj signoj" estas forigitaj. Tiel “é” fariĝas “e”. Kiam estas internaciigo kaj lokalizo, estas bona praktiko senbruligi tekston por serĉfunkcioj.
15. _.malalti
Ĉi tiu estas unu el la plej efikaj Lodash-strategioj. Eble ankaŭ malfacilas kompreni, kion ĝi faras kaj kiam vi devus uzi ĝin. La metodo _.debounce() resendas funkcion. La funkcio de la metodo _.debounce() prokrastos alvokon ĝis specifita nombro da milisekundoj pasis de kiam la funkcio estis laste alvokita.
konkludo
Lodash estas potenca etendo de la JavaScript lingvo. Kun minimuma peno, oni povas konstrui koncizan kaj efikan kodon. Lodash ankaŭ estas tute modula. Kvankam kelkaj el ĝiaj funkcioj povas finfine esti malrekomenditaj, mi kredas, ke ĝi ankoraŭ provizos multajn avantaĝojn al programistoj dum ankaŭ stirado de la evoluo de la JS-lingvo.
Mi esperas, ke ĉi tiuj malmultaj Lodash-kapabloj helpos vin vidi kiom potenca Lodash povas esti kiam vi laboras kun tabeloj, objektoj kaj kolektoj. Vi povas viziti la dokumentado esplori multajn aliajn eblojn kiujn ĝi havas por proponi.
Lasi Respondon