На танҳо аз таҳиягар иҷрои вазифаҳо талаб карда мешавад, балки инчунин бояд ба таври муассиртар иҷро карда шавад. Имрӯз дар JavaScript якчанд китобхонаҳо мавҷуданд, ки кор бо тағирёбандаҳоро барои таҳиягарон осон мекунанд. Мо дар ин дастур чӣ гуна истифода бурдани функсияҳои маъмултарини китобхонаи Лодашро меомӯзем.
Агар шумо то ҳол Лодашро санҷида бошед, ҳоло лаҳза аст. Lodash як бастаи хидматрасонии муосири JavaScript мебошад, ки кор бо массивҳо, ададҳои бутун, объектҳо, матнҳо ва дигар намудҳои додаҳоро осонтар мекунад.
Он ба шумо дар мубориза бо навъҳои гуногуни объектҳо кӯмак мекунад ва вақти шуморо сарфа мекунад ва зарурати рамзгузории усулҳои умумиро бартараф мекунад. Рамзи шумо бо сатрҳои камтар тозатар мешавад ва дар ҳама браузерҳо кор хоҳад кард. Агар шумо аллакай онро истифода набаред, шумо бояд онро бодиққат баррасӣ кунед.
Қабули Лодаш барои пойгоҳҳои коди JavaScript-и мо талафоти бузург аст. Ин як ҳалли бе хато ва шево барои мушкилоти умумии мо дар кор аст ва истифодаи он танҳо коди моро бештар хондан ва идорашаванда мегардонад.
Биёед ба баъзе аз маъмултарин (ё не!) Функсияҳои Lodash шинос шавем ва бифаҳмем, ки ин китобхона то чӣ андоза муфид ва зебост.
1. _.sortedUniq
Ҳама арзишҳои такрорӣ бо ин баргардонида намешаванд. Азбаски он танҳо барои массивҳои ҷудошуда аст, он асосан бо сабабҳои суръат истифода мешавад. Ин танҳо фоидаовар аст, агар шумо бо массиви калон кор кунед. Агар шумо хоҳед, ки суръатро беҳтар кунед, массиватонро ҷудо кунед ва усулҳоеро истифода баред, ки бо массивҳои мураттабшуда беҳтар кор мекунанд.
Лодаш як катор вазифахои дигаре низ дорад, ки ба ин монанданд. Шумо метавонед ба .sortedIndex, .sortedIndexBy, .sortedIndexOf, .sortedLastIndex, .sortedLastIndexBy, .sortedLastIndexOf, .sortedUniq, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .nisortedUniqBy, .
2. _.кам кардан
_.reduce ба вазифаи филтр монанд аст. Ягона фарқият дар он аст, ки шумо имкони интихоби шакли объекти баргардонидашударо доред. Ин муқаррарӣ аст, агар шумо гуфтаҳои маро нафаҳмед; барои он мисоле ҳаст.
Аслан, мо объекти наверо бар мегардонем, ки дорои корбарон аз рӯи синну сол тасниф шудаанд, аммо танҳо барои онҳое, ки аз 18 то 59 сола мебошанд. Ин функсияи ёрирасони Lodash яке аз маъмултарин истифода мешавад. Он инчунин ба ES6 дохил карда шудааст. Ман инчунин мехоҳам ду хатои маъмулиро қайд намоям: фаромӯш накунед, ки натиҷаро дар охири функсия баргардонед ва арзиши пешфарзро барои натиҷа ҳамчун параметри сеюм таъмин кунед (дар ин ҷо).
3. _.гиред ва ._танзим кунед
Барои ин, ман шуморо бо нишон додани ду функсияе, ки тақрибан як чизро иҷро мекунанд, фиреб медиҳам. _.get арзиши амволро аз объект бармегардонад ва _.set, хуб, шумо онро фаҳмидед, амволро бо арзиш муқаррар кунед. Ҳеҷ чизи беназир нест, ба истиснои он ки шумо метавонед ба амвол тавассути роҳи он дастрасӣ пайдо кунед.
Биёед як мисолро дида бароем.
Агар ҳангоми занг задан ба _.set роҳ мавҷуд набошад, он тавлид мешавад. Дигар хатогиҳои "Танзими амвол 'ададҳои' номуайяншуда" вуҷуд нахоҳад дошт. Агар роҳ мавҷуд набошад, _.get ба ҷои хато номуайян бармегардад. Агар роҳ ба номуайян табдил ёбад, шумо инчунин метавонед арзиши пешфарзро (параметри сеюм) пешниҳод кунед.
4. _.пайдо кардан
Ба ҷои он ки дар массив барои пайдо кардани як объект, мо метавонем _.find -ро истифода барем. Ин хуб аст, аммо ин ягона коре нест, ки _.find карда метавонад. Бо як сатри код, шумо инчунин метавонед объектро тавассути истифодаи хосиятҳои сершумор кашф кунед. Инро Санҷ!
5. _.keyBy
Яке аз дӯстдоштаи ман _.keyBy аст. Он ҳангоми кӯшиши ба даст овардани объект бо атрибути муайян хеле муфид аст. Фарз мекунем, ки мо 100 вурудоти блог дорем ва мехоҳем онро бо ID-и "34abc" гирем. Мо ин корро чй тавр мекунем? Биёед бубинем, ки чӣ мешавад! Ин усул метавонад ба шумо дар ташкили коллексияи объектҳо кӯмак расонад, агар сервер онро ҳамчун массив таъмин кунад. Функсия инчунин метавонад ҳамчун далели дуюм истифода шавад.
6. _.барои Ҳар
Ин усул як қатор объектҳоро як ба як такрор мекунад ва ба шумо имкон медиҳад, ки ҳар мантиқи мехоҳед, иҷро кунед. Дар ин мисоли аввал, ман рӯйхати объектҳои корбарро давр мезанам ва ном ва насабҳои онҳоро якҷоя карда, моликияти нав бо номи fullName эҷод мекунам.
forHer яке аз ин ду параметрро қабул мекунад. Массире, ки мо онро давр мезанем, параметри аввал аст. Далели дуюм функсияи такрорист, ки параметри якум истинод ба банди инфиродӣ ва дуюм шохиси ҷории итератсия мебошад.
7. _.харита
Харита, ба монанди forEach, дар як қатор арзишҳо такрор мешавад. Функсияи харита, аз тарафи дигар, массиви нави арзишҳоро, ки функсияи iterate пешниҳод кардааст, бармегардонад. Мо ҳамон коллексияи корбаронро, ки дар мисоли forEach мо дар ин ҷо истифода мебарем. Мо метавонем _.map-ро барои тавлиди тағирёбандаи нав истифода барем, ки дорои массиви ҳамворшудаи номи пурраи корбарон мебошад.
8. _.фарқият
Функсияи фарқият массиви нави арзишҳоро тавлид мекунад, ки дар байни массивҳои якум ва дуюм фарқ мекунанд. Бояд қайд кард, ки макони баҳсҳо ба натиҷаҳо таъсир мерасонад.
9. _.даст
Функсияи _.get() метавонад ба мо дар ёфтани элемент дар дохили объект кумак кунад. Мо метавонем арзиши пешфарзро барои функсияи _.get() таъин кунем, ки агар элемент дар роҳи додашуда пайдо нашавад. Функсияи _.get() се параметрро мегирад, ки аввалини онҳо объектест, ки мо мехоҳем аз он элемент гирем. Роҳ дуюм аст. Қимати сеюм ин арзиши пешфарз аст, ки мо мехоҳем баргардонем, агар элемент ҷойгир карда нашавад.
10. _.пайдо кардан
Функсияи _find() метавонад ба усули _.get() якхела бошад. Функсияи _.find(), мисли усули _.get() се параметрро қабул мекунад. Аммо, бар хилофи усули _.get(), далели аввал метавонад массив ё объект бошад. Далели дуюм функсияеро муайян мекунад, ки дар ҳар як такрор даъват карда мешавад. Вуруди сеюм индекси ибтидоии коллексия мебошад. Зеро функсияи _.find() ҳар як элементи коллексияро такрор мекунад.
11. _.groupBy
Объектеро, ки аз рӯи натиҷаи функсия номгузорӣ шудааст (ё номи хосияти ба таври тасодуфӣ интихобшуда) созед, ки ҳар як арзиш массиви объектҳои дорои як калид мебошад.
12. _.сет
Усули _.set() баръакси усули _.get() аст. Он арзиши элементро дар роҳи додашуда тағир медиҳад. Объект ё массив параметри якум, роҳ дуюм ва арзише, ки шумо таъин кардан мехоҳед, сеюм аст.
13. _. якчоя кардан
Он ба Object.assign шабеҳ кор мекунад, ба истиснои он, ки он ба сохтори аслӣ бозмегардад, то объектҳои амиқтарро навсозӣ кунад, ба ҷои иваз кардани онҳо.
14. ._дебурр
Ин як мисоли хеле рост аст. Ҳама "нишонаҳои диакритикии якҷоя" хориҷ карда мешаванд. Ҳамин тариқ, "é" "e" мешавад. Вақте ки интернационализатсия ва маҳаллисозӣ вуҷуд дорад, ин як таҷрибаи хубест барои бартараф кардани матн барои функсияҳои ҷустуҷӯ.
15. _.даста шудан
Ин яке аз стратегияҳои самараноки Лодаш аст. Фаҳмидани он чӣ кор мекунад ва кай шумо бояд онро истифода баред, шояд душвор бошад. Усули _.debounce() функсияро бармегардонад. Функсияи усули _.debounce() даъватро то он даме, ки шумораи муайяни миллисонияҳо аз замони охирин даъват шудани функсия гузашта бошад, ба таъхир меандозад.
хулоса
Lodash як тавсеаи тавонои забони JavaScript мебошад. Бо саъю кӯшиши ҳадди ақал, кас метавонад рамзи мухтасар ва муассир созад. Лодаш низ комилан модулист. Гарчанде ки баъзе функсияҳои он дар ниҳоят бекор карда мешаванд, ман боварӣ дорам, ки он то ҳол ба таҳиягарон манфиатҳои зиёд медиҳад ва инчунин таҳаввулоти забони JS-ро пеш мебарад.
Умедворам, ки ин чанд қобилиятҳои Lodash ба шумо кӯмак мекунанд, то бубинед, ки Лодаш ҳангоми кор бо массивҳо, объектҳо ва коллексияҳо то чӣ андоза тавоно буда метавонад. Шумо метавонед боздид кунед ҳуҷҷатҳо барои омӯхтани як қатор вариантҳои дигаре, ки он пешниҳод мекунад.
Дин ва мазҳаб