Դա ոչ միայն պահանջվում է ծրագրավորողից առաջադրանքները կատարելու համար, այլ նաև անհրաժեշտ է առաջադրանքներն ավելի արդյունավետ կերպով կատարել: Այսօր JavaScript-ում կան մի քանի գրադարաններ, որոնք հեշտացնում են փոփոխականների հետ աշխատանքը մշակողների համար: Մենք կսովորենք, թե ինչպես օգտագործել Lodash գրադարանի ամենատարածված գործառույթները այս ձեռնարկում:
Եթե դեռ չեք փորձել Lodash-ը, ապա հիմա ճիշտ պահն է: Lodash-ը JavaScript-ի ժամանակակից կոմունալ փաթեթ է, որը հեշտացնում է զանգվածների, ամբողջ թվերի, օբյեկտների, տեքստերի և տվյալների այլ տեսակների հետ աշխատանքը:
Այն կօգնի ձեզ գործ ունենալ տարբեր տեսակի օբյեկտների հետ և կխնայի ձեր ժամանակը՝ վերացնելով ընդհանուր մեթոդների կոդավորման անհրաժեշտությունը: Ձեր կոդը ավելի մաքուր կլինի՝ ավելի քիչ տողերով և կգործի բոլոր բրաուզերներում: Եթե դուք դեռ չեք օգտագործում այն, դուք պետք է ուշադիր մտածեք դրա մասին:
Lodash-ի չընդունումը հսկայական կորուստ է մեր JavaScript կոդերի բազայի համար: Սա վրիպազերծ և էլեգանտ լուծում է ընդհանուր մարտահրավերների համար, որոնք մենք ունենք աշխատանքում, և դրա օգտագործումը միայն կդարձնի մեր կոդը ավելի ընթեռնելի և կառավարելի:
Եկեք խորանանք Lodash-ի ավելի հայտնի (կամ ոչ) գործառույթների մեջ և պարզենք, թե որքան օգտակար և գեղեցիկ է այս գրադարանը:
1. _.տեսակավորվածUniq
Բոլոր կրկնօրինակված արժեքները չեն վերադարձվի այս մեկով: Քանի որ դա պարզապես տեսակավորված զանգվածների համար է, այն հիմնականում օգտագործվում է արագության պատճառով: Սա օգտակար է միայն այն դեպքում, եթե գործ ունեք մեծ զանգվածի հետ: Եթե ցանկանում եք բարելավել արագությունը, դասավորեք ձեր զանգվածը և օգտագործեք մեթոդներ, որոնք ավելի լավ են գործում տեսակավորված զանգվածներով:
Lodash-ն ունի մի շարք այլ գործառույթներ, որոնք նման են դրան: Դուք կարող եք նայել .sortedIndex, .sortedIndexBy, .sortedIndexOf, .sortedLastIndex, .sortedLastIndexBy, .sortedLastIndexOf, .sortedUniq, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .
2. _.նվազեցնել
_.reduce-ը նման է ֆիլտրի ֆունկցիայի: Միակ տարբերությունն այն է, որ դուք ունեք վերադարձված օբյեկտի ձևն ընտրելու հնարավորություն: Նորմալ է, եթե չես հասկանում, թե ինչ եմ ասում; դրա համար օրինակ կա.
Ըստ էության, մենք վերադարձնում ենք նոր օբյեկտ, որը պարունակում է օգտվողներ, որոնք դասակարգված են ըստ տարիքի, բայց միայն 18-ից 59 տարեկանների համար: Այս Lodash օգնական գործառույթը ամենատարածվածներից մեկն է: Այն նաև ներառված է ES6-ում: Ես կցանկանայի նաև նշել երկու բնորոշ սխալ. հիշեք, որ արդյունքը վերադարձնեք ֆունկցիայի ավարտին և որպես երրորդ պարամետր տրամադրեք արդյունքի լռելյայն արժեքը (այստեղ):
3. _.ստանալ և ._սահմանել
Այս մեկի համար ես ձեզ մի փոքր կխաբեմ՝ ցույց տալով երկու գործառույթ, որոնք կատարում են գրեթե նույնը: _.get վերադարձնում է գույքի արժեք օբյեկտից, իսկ _.set, լավ, դուք գուշակեցիք, սահմանեք հատկություն արժեքով: Ոչ մի եզակի բան, բացի նրանից, որ դուք կարող եք մուտք գործել սեփականություն իր ճանապարհով:
Եկեք նայենք մի օրինակի.
Եթե ուղին գոյություն չունի _.set կանչելիս, այն կստեղծվի: Այլևս չի լինի «Հնարավոր չէ սահմանել չսահմանված սեփականության «տարրեր» սխալներ: Եթե ուղին գոյություն չունի, _.get սխալի փոխարեն կվերադառնա չսահմանված: Եթե ճանապարհը դառնում է անորոշ, դուք կարող եք նաև տրամադրել լռելյայն արժեք (երրորդ պարամետր):
4. _.գտնել
Զանգվածի միջով մեկ օբյեկտ գտնելու փոխարեն մենք կարող ենք օգտագործել _.find: Դա լավ է, բայց դա միակ բանը չէ, ինչ _.find-ը կարող է անել: Կոդի մեկ տողով դուք կարող եք նաև հայտնաբերել օբյեկտ՝ օգտագործելով բազմաթիվ հատկություններ: Ստուգեք այն!
5. _.keyBy
Իմ սիրելիներից մեկը _.keyBy-ն է: Այն բավականին օգտակար է որոշակի հատկանիշով օբյեկտ ձեռք բերելու փորձի ժամանակ: Ենթադրենք, որ մենք ունենք 100 բլոգի գրառում և ցանկանում ենք գրավել «34abc» id-ով մեկը: Ինչպե՞ս ենք դա անելու։ Տեսնենք, թե ինչ կլինի։ Այս մեթոդը կարող է օգնել ձեզ կազմակերպել օբյեկտների հավաքածու, եթե սերվերը տրամադրում է այն որպես զանգված: Ֆունկցիան կարող է օգտագործվել նաև որպես երկրորդ արգումենտ։
6. _.Յուրաքանչյուրի համար
Այս մեթոդը կկրկնվի օբյեկտների զանգվածի վրա մեկ առ մեկ՝ թույլ տալով անել այն տրամաբանությունը, որը ցանկանում եք: Այս առաջին օրինակում ես կվերցնեմ օգտվողի օբյեկտների ցանկը՝ միաձուլելով նրանց անունն ու ազգանունը՝ ստեղծելով լրիվName անունով նոր հատկություն:
Սրանցից յուրաքանչյուրն ընդունում է երկու պարամետր: Զանգվածը, որի վրա մենք շրջում ենք, առաջին պարամետրն է: Երկրորդ արգումենտը կրկնվող ֆունկցիա է, որտեղ առաջին պարամետրը առանձին տարրի հղումն է, իսկ երկրորդը՝ կրկնության ընթացիկ ինդեքսը:
7. _.քարտեզ
Քարտեզը, ինչպես յուրաքանչյուրի համար, կրկնվում է արժեքների զանգվածով: Քարտեզի ֆունկցիան, մյուս կողմից, վերադարձնում է iterate ֆունկցիայի տրամադրած արժեքների նոր զանգված: Մենք օգտագործում ենք օգտատերերի նույն հավաքածուն, ինչ մեր ForEach օրինակում այստեղ: Մենք կարող ենք օգտագործել _.map նոր փոփոխական ստեղծելու համար, որն ունի բոլոր օգտագործողների ամբողջական անունների հարթեցված զանգված:
8. _.տարբերություն
Տարբերության ֆունկցիան կստեղծի արժեքների նոր զանգված, որը տարբերվում է առաջին և երկրորդ զանգվածների միջև: Կարևոր է նշել, որ փաստարկների գտնվելու վայրը ազդում է արդյունքների վրա:
9. _.ստանալ
_.get() ֆունկցիան կարող է օգնել մեզ օբյեկտի մեջ տարրը տեղորոշելու հարցում: Մենք կարող ենք նախադրյալ արժեք սահմանել _.get() ֆունկցիայի համար, որը պետք է վերադարձնի, եթե տարրը չի գտնվել մատակարարված ճանապարհին: _.get() ֆունկցիան ընդունում է երեք պարամետր, որոնցից առաջինը այն օբյեկտն է, որից մենք ցանկանում ենք տարր ստանալ: Ճանապարհը երկրորդն է. Երրորդ արժեքն այն լռելյայն արժեքն է, որը մենք ցանկանում ենք վերադարձնել, եթե տարրը հնարավոր չէ գտնել:
10. _.գտնել
_find() ֆունկցիան կարող է թվալ, որ նույնական է _.get() մեթոդին: _.find() ֆունկցիան, ինչպես _.get() մեթոդը, ընդունում է երեք պարամետր։ Այնուամենայնիվ, ի տարբերություն _.get() մեթոդի, առաջին արգումենտը կարող է լինել զանգված կամ օբյեկտ։ Երկրորդ արգումենտը նշում է ֆունկցիան, որը կանչվելու է յուրաքանչյուր կրկնության վրա: Երրորդ մուտքագրումը հավաքածուի սկզբնական ինդեքսն է: Քանի որ _.find() ֆունկցիան կրկնվում է հավաքածուի յուրաքանչյուր տարրի վրա:
11. _.groupBy
Ստեղծեք գործառույթի (կամ պատահականորեն ընտրված սեփականության անվանմամբ) անունով օբյեկտ, որտեղ յուրաքանչյուր արժեք նույն բանալիով օբյեկտների զանգված է:
12. _.հավաքածու
_.set() մեթոդը _.get() մեթոդի հակադարձն է: Այն կփոխի տարրի արժեքը տվյալ ուղու վրա: Օբյեկտը կամ զանգվածը առաջին պարամետրն է, ուղին երկրորդն է, իսկ արժեքը, որը ցանկանում եք սահմանել, երրորդն է:
13. _.միաձուլվել
Այն գործում է Object.assign-ի նման, բացառությամբ, որ այն վերադառնում է հիմքում ընկած կառուցվածքի մեջ՝ թարմացնելու ավելի խորը օբյեկտները, այլ ոչ թե դրանք փոխարինելու:
14. ._deburr
Սա բավականին պարզ օրինակ է։ Բոլոր «համակցող դիակրիտիկ նշումները» հանվում են: Այսպիսով «é»-ն դառնում է «e»: Երբ կա միջազգայնացում և տեղայնացում, լավ պրակտիկա է որոնման գործառույթների համար տեքստը մաքրելը:
15. _.debounce
Սա Lodash-ի ամենաարդյունավետ ռազմավարություններից մեկն է: Հնարավոր է նաև դժվար լինի հասկանալ, թե ինչ է դա անում և երբ դուք պետք է օգտագործեք այն: _.debounce() մեթոդը վերադարձնում է ֆունկցիա: _.debounce() մեթոդի ֆունկցիան կհետաձգի կանչը այնքան ժամանակ, մինչև ֆունկցիայի վերջին կանչից հետո անցնի որոշակի միլիվայրկյաններ:
Եզրափակում
Lodash-ը JavaScript լեզվի հզոր ընդլայնումն է: Նվազագույն ջանքերի դեպքում կարելի է ստեղծել հակիրճ և արդյունավետ կոդ: Լոդաշը նույնպես ամբողջովին մոդուլային է: Թեև դրա որոշ գործառույթներ, ի վերջո, կարող են հնացած լինել, ես կարծում եմ, որ այն դեռևս բազմաթիվ առավելություններ կապահովի մշակողներին՝ միաժամանակ խթանելով JS լեզվի էվոլյուցիան:
Հուսով եմ, որ Lodash-ի այս մի քանի հնարավորությունները կօգնեն ձեզ տեսնել, թե որքան հզոր կարող է լինել Lodash-ը զանգվածների, օբյեկտների և հավաքածուների հետ աշխատելիս: Դուք կարող եք այցելել փաստաթղթեր ուսումնասիրել բազմաթիվ այլ տարբերակներ, որոնք այն ունի:
Թողնել գրառում