Nid yn unig y mae'n ofynnol i ddatblygwr gwblhau tasgau, ond mae hefyd yn angenrheidiol i wneud tasgau mewn modd mwy effeithlon. Mae yna nifer o lyfrgelloedd ar gael yn JavaScript heddiw sy'n ei gwneud hi'n haws i ddatblygwyr weithio gyda newidynnau. Byddwn yn dysgu sut i ddefnyddio swyddogaethau mwyaf cyffredin llyfrgell Lodash yn y tiwtorial hwn.
Os nad ydych wedi rhoi cynnig ar Lodash eto, nawr yw'r foment. Mae Lodash yn becyn cyfleustodau JavaScript cyfoes sy'n symleiddio gweithio gydag araeau, cyfanrifau, gwrthrychau, testunau, a mathau eraill o ddata yn haws.
Bydd yn eich cynorthwyo i ddelio â gwahanol fathau o wrthrychau a bydd yn arbed amser i chi trwy ddileu'r angen i godio dulliau generig. Bydd eich cod yn lanach gyda llai o linellau a bydd yn gweithredu ym mhob porwr. Os nad ydych eisoes yn ei ddefnyddio, dylech ei ystyried yn ofalus.
Mae peidio â mabwysiadu Lodash yn golled enfawr i'n cronfeydd codau JavaScript. Mae’n ddatrysiad di-fyg a chain i heriau cyffredin sydd gennym yn y gwaith, a bydd ei ddefnyddio ond yn gwneud ein cod yn fwy darllenadwy a hylaw.
Gadewch i ni ymchwilio i rai o'r swyddogaethau Lodash mwy poblogaidd (neu beidio!) a darganfod pa mor hynod ddefnyddiol a hardd yw'r llyfrgell hon.
1. _.sortedUniq
Ni fydd yr holl werthoedd a ddyblygwyd yn cael eu dychwelyd gyda'r un hwn. Oherwydd ei fod ar gyfer araeau wedi'u didoli yn unig, mae hyn yn cael ei ddefnyddio'n bennaf am resymau cyflymder. Mae hyn ond yn ddefnyddiol os ydych chi'n delio ag amrywiaeth fawr. Os dymunwch wella cyflymder, trefnwch eich arae a defnyddiwch ddulliau sy'n gweithredu'n well gydag araeau wedi'u didoli.
Mae gan Lodash nifer o swyddogaethau eraill sy'n debyg i hyn. Gallwch edrych ar .sortedIndex, .sortedIndexBy, .sortedIndexOf, .sortedLastIndex, .sortedLastIndexBy, .sortedLastIndexOf, .sortedUniq, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .sortedUniq.Borty.
2. _.lleihau
Mae _.reduce yn debyg i swyddogaeth hidlo. Yr unig wahaniaeth yw bod gennych yr opsiwn o ddewis ffurf y gwrthrych a ddychwelwyd. Mae'n normal, os nad ydych chi'n deall yr hyn rwy'n ei ddweud; mae enghraifft ar ei gyfer.
Yn y bôn, rydym yn dychwelyd gwrthrych newydd sy'n cynnwys defnyddwyr wedi'u dosbarthu yn ôl oedran, ond dim ond ar gyfer y rhai rhwng 18 a 59 oed. Mae'r swyddogaeth cynorthwyydd Lodash hon yn un o'r rhai a ddefnyddir amlaf. Mae hefyd wedi'i gynnwys yn ES6. Hoffwn hefyd dynnu sylw at ddau gamgymeriad nodweddiadol: cofiwch ddychwelyd y canlyniad ar ddiwedd y swyddogaeth, a rhowch y gwerth rhagosodedig ar gyfer y canlyniad fel y trydydd paramedr (yma ).
3. _.get a ._set
Ar gyfer yr un hon, byddaf yn eich twyllo rhywfaint trwy ddangos dwy swyddogaeth sy'n perfformio bron yr un peth. Mae _.get yn dychwelyd gwerth eiddo o wrthrych, a _.set, wel, fe wnaethoch chi ddyfalu, gosodwch eiddo â gwerth. Dim byd unigryw, ac eithrio y gallwch gael mynediad i eiddo trwy ei lwybr.
Gadewch inni edrych ar enghraifft.
Os nad yw'r llwybr yn bodoli wrth ffonio _.set, bydd yn cael ei gynhyrchu. Ni fydd mwy o wallau “Methu gosod eiddo 'eitemau' heb eu diffinio. Os nad yw'r llwybr yn bodoli, bydd _.get yn dychwelyd heb ei ddiffinio yn lle gwall. Os yw'r llwybr yn penderfynu nad yw wedi'i ddiffinio, gallwch hefyd ddarparu gwerth rhagosodedig (trydydd paramedr).
4. _.find
Yn hytrach na dolennu trwy arae i ddod o hyd i wrthrych unigol, efallai y byddwn yn defnyddio _.find. Mae hynny'n dda, ond nid dyma'r unig beth y gall _.find ei wneud. Gydag un llinell o god, gallwch hefyd ddarganfod gwrthrych trwy ddefnyddio nifer o briodweddau. Edrychwch arno!
5. _.keyBy
Un o fy ffefrynnau yw _.keyBy. Mae'n eithaf defnyddiol wrth geisio cael gwrthrych gyda phriodoledd arbennig. Tybiwch fod gennym ni 100 o gofnodion blog ac eisiau cydio yn yr un gyda'r id “34abc.” Sut ydym ni'n mynd i'w wneud? Gawn ni weld beth sy'n digwydd! Gall y dull hwn eich helpu i drefnu casgliad gwrthrychau os yw gweinydd yn ei ddarparu fel arae. Gellir defnyddio ffwythiant hefyd fel yr ail ddadl.
6. _.forEach
Bydd y dull hwn yn ailadrodd dros amrywiaeth o wrthrychau fesul un, gan ganiatáu ichi wneud pa bynnag resymeg rydych chi ei eisiau. Yn yr enghraifft gyntaf hon, byddaf yn dolen dros restr o wrthrychau defnyddwyr, gan uno eu henwau cyntaf a'u henwau olaf i greu eiddo newydd o'r enw FullName.
oherwydd mae pob un o'r rhain yn derbyn dau baramedr. Yr arae yr ydym yn dolennu drosti yw'r paramedr cyntaf. Mae'r ail ddadl yn ffwythiant iteraidd, gyda'r paramedr cyntaf yn gyfeirnod eitem unigol a'r ail yn fynegai cyfredol yr iteriad.
7. _.map
Mae Map, fel forEach, yn ailadrodd ar draws amrywiaeth o werthoedd. Mae'r ffwythiant map, ar y llaw arall, yn dychwelyd amrywiaeth newydd o werthoedd a ddarperir gan y ffwythiant iteraidd. Rydym yn defnyddio'r un casgliad o ddefnyddwyr ag yn ein hesiampl forEach yma. Mae'n bosibl y byddwn yn defnyddio _.map i gynhyrchu newidyn newydd sydd ag amrywiaeth wastad o enwau cyflawn yr holl ddefnyddwyr.
8. _.gwahaniaeth
Bydd y ffwythiant gwahaniaeth yn cynhyrchu amrywiaeth newydd o werthoedd sy'n gwahaniaethu rhwng yr araeau cyntaf a'r ail arae. Mae'n hollbwysig nodi bod lleoliadau'r dadleuon yn effeithio ar y canlyniadau.
9. _.cael
Gall y ffwythiant _.get() ein cynorthwyo i leoli elfen o fewn gwrthrych. Gallwn osod gwerth rhagosodedig i'r ffwythiant _.get() ddychwelyd os na cheir hyd i elfen yn y llwybr a gyflenwir. Mae'r ffwythiant _.get() yn cymryd tri pharamedr, a'r cyntaf yw'r gwrthrych yr ydym am gael elfen ohono. Y llwybr yw'r ail. Y trydydd gwerth yw'r gwerth rhagosodedig yr ydym am ei ddychwelyd os na ellir lleoli elfen.
10. _.find
Gall y ffwythiant _find() ymddangos yn union yr un fath â'r dull _.get(). Mae'r ffwythiant _.find(), fel y dull _.get(), yn derbyn tri pharamedr. Fodd bynnag, yn wahanol i'r dull _.get(), gall y ddadl gyntaf fod yn arae neu'n wrthrych. Mae'r ail ddadl yn nodi'r swyddogaeth a fydd yn cael ei galw ar bob iteriad. Y trydydd mewnbwn yw mynegai cychwyn y casgliad. Oherwydd bod y ffwythiant _.find() yn ailadrodd dros bob elfen mewn casgliad.
11. _.grwpBy
Crëwch wrthrych a enwir gan ganlyniad ffwythiant (neu enw priodwedd a ddewiswyd ar hap), gyda phob gwerth yn gyfres o wrthrychau gyda'r un allwedd.
12. _.set
Y dull _.set() yw gwrthdro'r dull _.get(). Bydd yn newid gwerth elfen ar lwybr penodol. Y gwrthrych neu'r arae yw'r paramedr cyntaf, y llwybr yw'r ail, a'r gwerth yr ydych am ei osod yw'r trydydd.
13. _.cyfuno
Mae'n gweithredu'n debyg i Object.assign, ac eithrio ei fod yn dychwelyd yn ddwfn i'r strwythur sylfaenol i ddiweddaru'r gwrthrychau dyfnach yn hytrach na'u disodli.
14. ._deburr
Mae hon yn enghraifft eithaf syml. Mae pob “cyfuno marciau diacritig” yn cael eu dileu. Felly mae “é” yn dod yn “e”. Pan fydd rhyngwladoli a lleoleiddio, mae'n arfer da dadbwrio testun ar gyfer swyddogaethau chwilio.
15. _.debounce
Dyma un o'r strategaethau Lodash mwyaf effeithiol. Gall hefyd fod yn anodd deall beth mae'n ei wneud a phryd y dylech ei ddefnyddio. Mae'r dull _.debounce() yn dychwelyd ffwythiant. Bydd swyddogaeth y dull _.debounce() yn gohirio'r galw nes bod nifer penodol o filieiliadau wedi mynd heibio ers i'r ffwythiant gael ei ddefnyddio ddiwethaf.
Casgliad
Mae Lodash yn estyniad pwerus o'r iaith JavaScript. Gydag ychydig iawn o ymdrech, gellir adeiladu cod cryno ac effeithlon. Mae Lodash hefyd yn gwbl fodiwlaidd. Er y gallai rhai o'i swyddogaethau gael eu hanrhydeddu yn y pen draw, credaf y bydd yn dal i ddarparu buddion niferus i ddatblygwyr tra hefyd yn llywio esblygiad yr iaith JS.
Rwy'n gobeithio y bydd yr ychydig alluoedd Lodash hyn yn eich helpu i weld pa mor bwerus y gall Lodash fod wrth weithio gydag araeau, gwrthrychau a chasgliadau. Gallwch ymweld â'r dogfennaeth i archwilio llu o opsiynau eraill sydd ganddo i'w cynnig.
Gadael ymateb