Иштеп чыгуучуга тапшырмаларды аткаруу гана талап кылынбастан, тапшырмаларды натыйжалуураак аткаруу да керек. Бүгүнкү күндө JavaScript'те иштеп чыгуучулар үчүн өзгөрмөлөр менен иштөөнү жеңилдеткен бир нече китепкана бар. Бул окуу куралында Лодаш китепканасынын эң кеңири таралган функцияларын кантип колдонууну үйрөнөбүз.
Эгер сиз Лодашты сынап көрө элек болсоңуз, азыр учур. Lodash - бул массивдер, бүтүн сандар, объекттер, тексттер жана башка маалымат түрлөрү менен иштөөнү жеңилдеткен заманбап JavaScript утилита пакети.
Бул сизге ар кандай объекттер менен иштөөгө жардам берет жана жалпы ыкмаларды коддоо зарылдыгын жок кылуу менен убакытты үнөмдөйт. Кодуңуз азыраак саптар менен тазараак болот жана бардык браузерлерде иштейт. Эгер сиз аны колдонбосоңуз, аны кылдаттык менен карап чыгышыңыз керек.
Lodash кабыл албоо биздин JavaScript код базалары үчүн чоң жоготуу болуп саналат. Бул биздин жумушубуздагы жалпы көйгөйлөргө катасыз жана көрктүү чечим жана аны колдонуу кодубузду окула турган жана башкара турган кылат.
Келгиле, кээ бир популярдуу (же жок!) Lodash функцияларын изилдеп көрөлү жана бул китепкана канчалык пайдалуу жана кооз экенин билели.
1. _.sortedUniq
Бардык кайталанган маанилер бул менен кайтарылбайт. Бул жөн гана иреттелген массивдер үчүн болгондуктан, бул негизинен ылдамдык үчүн колдонулат. Бул чоң массив менен иштеп жаткан учурда гана пайдалуу. Ылдамдыкты жакшырткыңыз келсе, массивиңизди сорттоп, иреттелген массивдер менен жакшыраак иштеген ыкмаларды колдонуңуз.
Лодаштын ушуга окшош башка бир катар функциялары бар. Сиз .sortedIndex, .sortedIndexBy, .sortedIndexOf, .sortedLastIndex, .sortedLastIndexBy, .sortedLastIndexOf, .sortedUniq, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .nisortedUniqBy, .UniqBy, .nisortedIndexOf, .sortedLastIndex, .
2. _.кичирейтүү
_.reduce фильтр функциясына окшош. Бир гана айырмасы, сизде кайтарылган объекттин формасын тандоо мүмкүнчүлүгү бар. Бул нормалдуу нерсе, эгер менин айтканымды түшүнбөсөң; ага мисал бар.
Негизи, биз курагы боюнча классификацияланган колдонуучуларды камтыган жаңы объектти кайтарабыз, бирок 18 жаштан 59 жашка чейинкилер үчүн. Бул Lodash жардамчы функциясы эң көп колдонулган функциялардын бири. Ал ошондой эле ES6 камтылган. Мен ошондой эле эки типтүү катаны белгилегим келет: функциянын аягында жыйынтыкты кайтарууну унутпаңыз жана натыйжа үчүн демейки маанини үчүнчү параметр катары бериңиз (бул жерде).
3. _.get жана ._set
Бул үчүн, мен дээрлик бирдей нерсени аткарган эки функцияны көрсөтүү менен сизди бир аз алдап коём. _.get объекттен касиеттин маанисин кайтарат, жана _.set, сиз аны болжолдуңуз, мааниге ээ болгон касиетти орнотуңуз. Уникалдуу эч нерсе жок, сиз мүлккө анын жолу аркылуу кире аласыз.
Келгиле, бир мисал карап көрөлү.
_.set чакырып жатканда жол жок болсо, ал түзүлөт. Мындан ары "Аныкталбаган мүлктүн "элементтерин" коюуга болбойт" каталары болбойт. Эгер жол жок болсо, _.get катанын ордуна аныкталбаган кайтарып берет. Эгер жол аныкталбаган деп чечилсе, сиз демейки маанини да бере аласыз (үчүнчү параметр).
4. _.тап
Бир объектти табуу үчүн массив аркылуу айлануунун ордуна, биз _.find колдонсок болот. Бул жакшы, бирок бул _.find кыла ала турган жалгыз нерсе эмес. Коддун бир сабы менен сиз көптөгөн касиеттерди колдонуу менен объектти таба аласыз. Муну карап көр!
5. _.keyBy
Менин сүйүктүүлөрүмдүн бири _.keyBy. Белгилүү бир атрибутка ээ объектти алууга аракет кылып жатканда бул абдан пайдалуу. Бизде 100 блог жазуулары бар жана "34abc" идентификатору бар бирөөнү алгыбыз келет деп ойлойлу. Биз муну кантип жасайбыз? Келгиле, эмне болорун карап көрөлү! Бул ыкма объект коллекциясын уюштурууга жардам берет, эгерде сервер аны массив катары берсе. Функция экинчи аргумент катары да колдонулушу мүмкүн.
6. _.forEach
Бул ыкма объекттердин массивинде бирден кайталанып, каалаган логиканы аткарууга мүмкүндүк берет. Бул биринчи мисалда, мен fullName деп аталган жаңы касиетти түзүү үчүн алардын аты менен фамилиясын бириктирип, колдонуучу объекттеринин тизмесин айлантам.
for Булардын ар бири эки параметрди кабыл алат. Биз айландырып жаткан массив биринчи параметр болуп саналат. Экинчи аргумент итерация функциясы болуп саналат, биринчи параметр жеке пункттун шилтемеси, экинчиси итерациянын учурдагы индекси.
7. _.карта
Карта, forEach сыяктуу, маанилердин массивинде кайталанат. Карта функциясы, экинчи жагынан, кайталоо функциясы тарабынан берилген маанилердин жаңы массивин кайтарат. Биз бул жердеги forEach мисалындагыдай эле колдонуучулардын коллекциясын колдонуп жатабыз. Биз _.mapты бардык колдонуучулардын толук аталыштарынын тегизделген массивине ээ болгон жаңы өзгөрмө түзүү үчүн колдонушубуз мүмкүн.
8. _.айырма
Айырма функциясы биринчи жана экинчи массивдердин ортосунда айырмаланган баалуулуктардын жаңы массивдерин чыгарат. Аргументтердин орду натыйжаларга таасирин тийгизерин белгилей кетүү маанилүү.
9. _.ал
_.get() функциясы объекттин ичиндеги элементти табууга жардам берет. Биз _.get() функциясы үчүн демейки маанини орното алабыз, эгерде элемент берилген жолдо табылбаса. _.get() функциясы үч параметрди алат, алардын биринчиси биз элементти алууну каалаган объект болуп саналат. Жол экинчи. Үчүнчү маани - бул элементти табуу мүмкүн болбосо, биз кайтаргыбыз келген демейки маани.
10. _.тап
_find() функциясы _.get() ыкмасына окшош болушу мүмкүн. _.find() функциясы _.get() ыкмасы сыяктуу үч параметрди кабыл алат. Бирок, _.get() методунан айырмаланып, биринчи аргумент массив же объект болушу мүмкүн. Экинчи аргумент ар бир итерацияда чакырыла турган функцияны аныктайт. Үчүнчү киргизүү - бул коллекциянын башталышы. Анткени _.find() функциясы коллекциядагы ар бир элементтин үстүнөн кайталанат.
11. _.groupBy
Функциянын жыйынтыгы боюнча аталган объектти түзүңүз (же кокус тандалып алынган касиеттин аталышы), ар бир маани бир эле ачкыч менен объекттердин массивинен турат.
12. _. set
_.set() ыкмасы _.get() ыкмасына тескери. Ал берилген жолдогу элементтин маанисин өзгөртөт. Объект же массив биринчи параметр, жол экинчи, ал эми сиз орноткуңуз келген маани үчүнчү болуп саналат.
13. _.бириктирүү
Ал Object.assign менен окшош иштейт, бирок аларды алмаштыруунун ордуна тереңирээк объекттерди жаңыртуу үчүн түпкү структурага терең кирип кайтат.
14. ._deburr
Бул абдан жөнөкөй мисал. Бардык "айкалыштыруучу диакритикалык белгилер" алынып салынат. Ошентип, "é" "e" болуп калат. Интернационалдаштыруу жана локалдаштыруу болгондо, издөө функциялары үчүн тексттин мүчүлүштүктөрүн жоюу жакшы практика болуп саналат.
15. _.debounce
Бул эң эффективдүү Lodash стратегияларынын бири. Анын эмне кыларын жана аны качан колдонуу керектигин түшүнүү да кыйын болушу мүмкүн. _.debounce() методу функцияны кайтарат. _.debounce() методунун функциясы функция акыркы жолу чакырылгандан бери белгиленген миллисекунддар өткөнгө чейин чакырууну кечеңдетет.
жыйынтыктоо
Lodash JavaScript тилинин күчтүү кеңейтүү болуп саналат. Минималдуу күч менен кыска жана эффективдүү код түзө алат. Lodash да толугу менен модулдук болуп саналат. Анын айрым функциялары акыры эскирип калышы мүмкүн, бирок мен ал иштеп чыгуучуларга дагы эле көптөгөн артыкчылыктарды берет деп ишенем, ошол эле учурда JS тилинин эволюциясына түрткү берет.
Бул бир нече Lodash мүмкүнчүлүктөрү массивдер, объекттер жана коллекциялар менен иштөөдө Lodash канчалык күчтүү боло аларын көрүүгө жардам берет деп үмүттөнөм. кире аласыз документтер ал сунуш кылган башка көптөгөн варианттарды изилдөө.
Таштап Жооп