დეველოპერს არ სჭირდება მხოლოდ ამოცანების შესრულება, არამედ ასევე აუცილებელია დავალებების უფრო ეფექტურად შესრულება. დღეს JavaScript-ში რამდენიმე ბიბლიოთეკაა ხელმისაწვდომი, რომლებიც ცვლადებთან მუშაობას უადვილებს დეველოპერებს. ჩვენ ვისწავლით, თუ როგორ გამოვიყენოთ Lodash ბიბლიოთეკის ყველაზე გავრცელებული ფუნქციები ამ სახელმძღვანელოში.
თუ Lodash ჯერ არ გიცდიათ, ახლა სწორედ ის მომენტია. Lodash არის JavaScript-ის თანამედროვე უტილიტა პაკეტი, რომელიც ამარტივებს მასივებთან, მთელ რიცხვებთან, ობიექტებთან, ტექსტებთან და მონაცემთა სხვა ტიპებთან მუშაობას.
ის დაგეხმარებათ სხვადასხვა სახის ობიექტებთან გამკლავებაში და დაზოგავთ თქვენს დროს ზოგადი მეთოდების კოდირების საჭიროების აღმოფხვრის გზით. თქვენი კოდი უფრო სუფთა იქნება ნაკლები ხაზებით და იმუშავებს ყველა ბრაუზერში. თუ თქვენ უკვე არ იყენებთ მას, ყურადღებით უნდა გაითვალისწინოთ იგი.
Lodash-ის არ მიღება არის უზარმაზარი დანაკარგი ჩვენი JavaScript კოდების ბაზებისთვის. ეს არის შეცდომების გარეშე და ელეგანტური გადაწყვეტა საერთო გამოწვევებისთვის, რომლებიც ჩვენ გვაქვს სამსახურში, და მისი გამოყენება მხოლოდ ჩვენს კოდს გახდის უფრო წასაკითხად და მართვადი.
მოდით ჩავუღრმავდეთ Lodash-ის უფრო პოპულარულ (ან არა!) ფუნქციებს და აღმოვაჩინოთ, რამდენად სასარგებლო და ლამაზია ეს ბიბლიოთეკა.
1. _.დახარისხებულიUniq
ყველა დუბლირებული მნიშვნელობა ამით არ დაბრუნდება. იმის გამო, რომ ეს არის მხოლოდ დახარისხებული მასივებისთვის, ეს ძირითადად გამოიყენება სიჩქარის მიზეზების გამო. ეს მხოლოდ გამოსადეგია, თუ საქმე გაქვთ დიდ მასივთან. თუ გსურთ სიჩქარის გაუმჯობესება, დაალაგეთ თქვენი მასივი და გამოიყენეთ მეთოდები, რომლებიც უკეთესად მუშაობენ დახარისხებული მასივებით.
Lodash-ს აქვს მრავალი სხვა ფუნქცია, რომელიც მსგავსია. შეგიძლიათ ნახოთ .sortedIndex, .sortedIndexBy, .sortedIndexOf, .sortedLastIndex, .sortedLastIndexBy, .sortedLastIndexOf, .sortedUniq, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy,.
2. _.შემცირება
_.reduce ფილტრის ფუნქციის მსგავსია. ერთადერთი განსხვავება ისაა, რომ თქვენ გაქვთ დაბრუნებული ობიექტის ფორმის არჩევის შესაძლებლობა. ნორმალურია, თუ ვერ ხვდები, რასაც ვამბობ; არის ამის მაგალითი.
არსებითად, ჩვენ ვაბრუნებთ ახალ ობიექტს, რომელიც შეიცავს მომხმარებლებს ასაკის მიხედვით, მაგრამ მხოლოდ 18-დან 59 წლამდე ასაკისთვის. ეს Lodash დამხმარე ფუნქცია ერთ-ერთი ყველაზე ხშირად გამოყენებულია. ის ასევე შედის ES6-ში. მე ასევე მინდა აღვნიშნო ორი ტიპიური შეცდომა: დაიმახსოვრე, რომ დააბრუნო შედეგი ფუნქციის დასასრულს და მიაწოდოს ნაგულისხმევი მნიშვნელობა შედეგისთვის, როგორც მესამე პარამეტრი (აქ).
3. _.მიიღეთ და ._დააყენეთ
ამ ერთისთვის მე მოგატყუებთ ორი ფუნქციის ჩვენებით, რომლებიც თითქმის ერთსა და იმავეს ასრულებენ. _.get აბრუნებს თვისების მნიშვნელობას ობიექტიდან და _.set, კარგად, თქვენ წარმოიდგინეთ, დააყენეთ თვისება მნიშვნელობით. არაფერი უნიკალური, გარდა იმისა, რომ თქვენ შეგიძლიათ შეხვიდეთ საკუთრებაში მისი გზით.
მოდით შევხედოთ მაგალითს.
თუ გზა არ არსებობს _.set-ის გამოძახებისას, ის გენერირებული იქნება. აღარ იქნება „დაუზუსტებელი“ საკუთრების „ერთეულების“ დაყენება. თუ გზა არ არსებობს, _.get შეცდომის ნაცვლად დაბრუნდება განუსაზღვრელი. თუ ბილიკი გადაიქცევა განუსაზღვრელზე, შეგიძლიათ ასევე მიაწოდოთ ნაგულისხმევი მნიშვნელობა (მესამე პარამეტრი).
4. _.იპოვე
იმის ნაცვლად, რომ შევამოწმოთ მასივი ერთი ობიექტის მოსაძებნად, შეიძლება გამოვიყენოთ _.find. ეს კარგია, მაგრამ ეს არ არის ერთადერთი, რაც _.ძიებას შეუძლია. კოდის ერთი ხაზით, თქვენ ასევე შეგიძლიათ აღმოაჩინოთ ობიექტი მრავალი თვისების გამოყენებით. Შეამოწმე!
5. _.keyBy
ჩემი ერთ-ერთი ფავორიტია _.keyBy. საკმაოდ სასარგებლოა გარკვეული ატრიბუტის მქონე ობიექტის მოპოვების მცდელობისას. დავუშვათ, რომ გვაქვს 100 ბლოგში ჩანაწერი და გვინდა ავიღოთ ის, რომელსაც აქვს ID „34abc“. როგორ ვაპირებთ ამის გაკეთებას? ვნახოთ რა მოხდება! ეს მეთოდი დაგეხმარებათ მოაწყოთ ობიექტების კოლექცია, თუ სერვერი უზრუნველყოფს მას მასივის სახით. ფუნქცია ასევე შეიძლება გამოყენებულ იქნას მეორე არგუმენტად.
6. _.თითოეულისთვის
ეს მეთოდი განმეორდება ობიექტების მასივზე სათითაოდ, რაც საშუალებას მოგცემთ განახორციელოთ ნებისმიერი ლოგიკა. ამ პირველ მაგალითში, მე გადავხედავ მომხმარებლის ობიექტების სიას, გავაერთიანებთ მათ სახელსა და გვარს, რათა შევქმნათ ახალი თვისება, სახელწოდებით fullName.
თითოეული მათგანი იღებს ორ პარამეტრს. მასივი, რომელსაც ჩვენ ვატარებთ, არის პირველი პარამეტრი. მეორე არგუმენტი არის iterate ფუნქცია, პირველი პარამეტრი არის ცალკეული ელემენტის მითითება და მეორე არის გამეორების მიმდინარე ინდექსი.
7. _.რუკა
რუკა, ისევე როგორც თითოეულისთვის, იმეორებს მნიშვნელობების მასივს. რუკის ფუნქცია, მეორე მხრივ, აბრუნებს მნიშვნელობების ახალ მასივს, რომელიც მოწოდებულია iterate ფუნქციით. ჩვენ ვიყენებთ მომხმარებელთა იმავე კოლექციას, როგორც ჩვენს მაგალითში აქ. ჩვენ შეიძლება გამოვიყენოთ _.map ახალი ცვლადის გენერირებისთვის, რომელსაც აქვს ყველა მომხმარებლის სრული სახელების გაბრტყელებული მასივი.
8. _.სხვაობა
განსხვავება ფუნქცია წარმოქმნის მნიშვნელობების ახალ მასივს, რომელიც განსხვავდება პირველ და მეორე მასივებს შორის. მნიშვნელოვანია აღინიშნოს, რომ არგუმენტების ადგილმდებარეობა გავლენას ახდენს შედეგებზე.
9. _.მიიღეთ
ფუნქცია _.get() დაგვეხმარება ობიექტში ელემენტის განთავსებაში. ჩვენ შეგვიძლია დავაყენოთ ნაგულისხმევი მნიშვნელობა _.get() ფუნქციისთვის, რომელიც უნდა დაბრუნდეს, თუ ელემენტი არ არის ნაპოვნი მიწოდებულ გზაზე. _.get() ფუნქცია იღებს სამ პარამეტრს, რომელთაგან პირველი არის ობიექტი, საიდანაც გვინდა ელემენტის მიღება. გზა მეორეა. მესამე მნიშვნელობა არის ნაგულისხმევი მნიშვნელობა, რომლის დაბრუნებაც გვინდა, თუ ელემენტი ვერ განთავსდება.
10. _.იპოვე
_find() ფუნქცია შეიძლება იყოს _.get() მეთოდის იდენტური. _.find() ფუნქცია, ისევე როგორც _.get() მეთოდი, იღებს სამ პარამეტრს. თუმცა, _.get() მეთოდისგან განსხვავებით, პირველი არგუმენტი შეიძლება იყოს მასივი ან ობიექტი. მეორე არგუმენტი განსაზღვრავს ფუნქციას, რომელიც გამოიძახება თითოეულ გამეორებაზე. მესამე შეყვანა არის კოლექციის საწყისი ინდექსი. რადგან _.find() ფუნქცია იმეორებს კოლექციის თითოეულ ელემენტს.
11. _.groupBy
შექმენით ობიექტი, რომელსაც დაასახელებს ფუნქციის შედეგი (ან შემთხვევით შერჩეული თვისების სახელი), სადაც თითოეული მნიშვნელობა იქნება იმავე კლავიშის მქონე ობიექტების მასივი.
12. _.კომპლექტი
მეთოდი _.set() არის მეთოდის შებრუნებული _.get(). ის შეცვლის ელემენტის მნიშვნელობას მოცემულ გზაზე. ობიექტი ან მასივი არის პირველი პარამეტრი, ბილიკი არის მეორე და მნიშვნელობა, რომლის დაყენებაც გსურთ, არის მესამე.
13. _.შერწყმა
ის Object.assign-ის მსგავსად ფუნქციონირებს, გარდა იმისა, რომ ის ღრმად იბრუნებს ფუძემდებლურ სტრუქტურას, რათა განაახლოს უფრო ღრმა ობიექტები და არა მათი ჩანაცვლება.
14. ._deburr
ეს საკმაოდ პირდაპირი მაგალითია. ყველა "კომბინირებული დიაკრიტიკული მარკირება" ამოღებულია. ამრიგად, "é" ხდება "ე". როდესაც არის ინტერნაციონალიზაცია და ლოკალიზაცია, კარგი პრაქტიკაა საძიებო ფუნქციებისთვის ტექსტის ამოღება.
15. _.დებოუნცია
ეს არის Lodash-ის ერთ-ერთი ყველაზე ეფექტური სტრატეგია. ასევე შეიძლება რთული იყოს იმის გაგება, თუ რას აკეთებს ის და როდის უნდა გამოიყენოთ იგი. _.debounce() მეთოდი აბრუნებს ფუნქციას. _.debounce() მეთოდის ფუნქცია აჭიანურებს გამოძახებას მანამ, სანამ ფუნქციის ბოლო გამოძახებიდან არ გავა მითითებულ რაოდენობა მილიწამებში.
დასკვნა
Lodash არის JavaScript ენის ძლიერი გაფართოება. მინიმალური ძალისხმევით, შეიძლება შეიქმნას ლაკონური და ეფექტური კოდი. Lodash ასევე მთლიანად მოდულარულია. მიუხედავად იმისა, რომ მისი ზოგიერთი ფუნქციონალობა საბოლოოდ შეიძლება მოძველდეს, მე მჯერა, რომ ის მაინც უამრავ სარგებელს მოუტანს დეველოპერებს, ხოლო ასევე წარმართავს JS ენის ევოლუციას.
იმედი მაქვს, Lodash-ის ეს რამდენიმე შესაძლებლობა დაგეხმარებათ დაინახოთ, რამდენად ძლიერი შეიძლება იყოს Lodash მასივებთან, ობიექტებთან და კოლექციებთან მუშაობისას. შეგიძლიათ ეწვიოთ დოკუმენტაცია შეისწავლოს სხვა ვარიანტების სიმრავლე, რაც მას სთავაზობს.
დატოვე პასუხი