Ад распрацоўшчыка неабходна не толькі выконваць задачы, але і выконваць задачы больш эфектыўна. Сёння ў JavaScript даступна некалькі бібліятэк, якія палягчаюць працу з зменнымі для распрацоўшчыкаў. У гэтым уроку мы даведаемся, як выкарыстоўваць найбольш распаўсюджаныя функцыі бібліятэкі Lodash.
Калі вы яшчэ не спрабавалі Lodash, цяпер самы момант. Lodash - гэта сучасны пакет утыліт JavaScript, які спрашчае працу з масівамі, цэлымі лікамі, аб'ектамі, тэкстамі і іншымі тыпамі дадзеных.
Гэта дапаможа вам працаваць з рознымі відамі аб'ектаў і зэканоміць ваш час, пазбавіўшыся ад неабходнасці кадаваць агульныя метады. Ваш код будзе больш чыстым з меншай колькасцю радкоў і будзе працаваць ва ўсіх браўзерах. Калі вы яшчэ не выкарыстоўваеце яго, вы павінны ўважліва разгледзець яго.
Непрыняцце Lodash - гэта вялікая страта для нашых кодавых баз JavaScript. Гэта беспамылковае і элегантнае рашэнне агульных праблем, якія ўзнікаюць у нас на працы, і яго выкарыстанне зробіць наш код больш чытэльным і кіруемым.
Давайце паглыбімся ў некаторыя з найбольш папулярных (ці не!) функцый Lodash і даведаемся, наколькі вельмі карысная і прыгожая гэтая бібліятэка.
1. _.sortedUniq
Усе дубліраваныя значэнні не будуць вернутыя з гэтым. Паколькі гэта толькі для адсартаваных масіваў, гэта ў асноўным выкарыстоўваецца з меркаванняў хуткасці. Гэта карысна толькі ў тым выпадку, калі вы маеце справу з вялікім масівам. Калі вы хочаце павысіць хуткасць, адсартуйце масіў і выкарыстоўвайце метады, якія лепш працуюць з адсартаванымі масівамі.
У Lodash ёсць шэраг іншых функцый, падобных да гэтай. Вы можаце паглядзець на .sortedIndex, .sortedIndexBy, .sortedIndexOf, .sortedLastIndex, .sortedLastIndexBy, .sortedLastIndexOf, .sortedUniq, .sortedUniqBy, .sortedUniqBy, .sorted.UniqBy, .sorted.UniqBy, .
2. _.памяншаць
_.reduce падобны на функцыю фільтра. Розніца толькі ў тым, што ў вас ёсць магчымасць выбраць форму вяртаемага аб'екта. Гэта нармальна, калі вы не разумееце, што я кажу; ёсць прыклад для гэтага.
Па сутнасці, мы вяртаем новы аб'ект, які змяшчае карыстальнікаў, класіфікаваных па ўзросце, але толькі для тых, хто ва ўзросце ад 18 да 59 гадоў. Гэтая дапаможная функцыя Lodash з'яўляецца адной з найбольш часта выкарыстоўваюцца. Ён таксама ўваходзіць у ES6. Я таксама хацеў бы адзначыць дзве тыповыя памылкі: не забудзьце вярнуць вынік пры завяршэнні функцыі і пазначыць значэнне па змаўчанні для выніку ў якасці трэцяга параметра (тут).
3. _.get і ._set
Для гэтага я некалькі падмалю вас, паказаўшы дзве функцыі, якія выконваюць амаль аднолькавае. _.get вяртае значэнне ўласцівасці з аб'екта, а _.set, як вы ўжо здагадаліся, задае ўласцівасць са значэннем. Нічога унікальнага, за выключэннем таго, што вы можаце атрымаць доступ да ўласцівасці праз яго шлях.
Давайце паглядзім на прыкладзе.
Калі шлях не існуе падчас выкліку _.set, ён будзе згенераваны. Больш не будзе памылак «Немагчыма ўсталяваць ўласцівасць «элементы» для невызначаных». Калі шлях не існуе, _.get верне невызначанае замест памылкі. Калі шлях ператвараецца ў невызначаны, вы таксама можаце падаць значэнне па змаўчанні (трэці параметр).
4. _.знайсці
Замест таго, каб перабіраць масіў, каб знайсці адзін аб'ект, мы можам выкарыстоўваць _.find. Гэта добра, але гэта не адзінае, што можа зрабіць _.find. З дапамогай аднаго радка кода вы таксама можаце выявіць аб'ект, выкарыстоўваючы шматлікія ўласцівасці. Праверце гэта!
5. _.keyBy
Адзін з маіх любімых - _.keyBy. Гэта вельмі карысна пры спробе атрымаць аб'ект з пэўным атрыбутам. Выкажам здагадку, што ў нас ёсць 100 запісаў у блогу, і мы хочам захапіць той, які мае ідэнтыфікатар «34abc». Як мы будзем гэта рабіць? Паглядзім, што атрымаецца! Гэты метад можа дапамагчы вам арганізаваць калекцыю аб'ектаў, калі сервер забяспечвае яе ў выглядзе масіва. Функцыя таксама можа быць выкарыстана ў якасці другога аргумента.
6. _.для кожнага
Гэты метад будзе перабіраць масіў аб'ектаў адзін за адным, дазваляючы вам рабіць любую логіку, якую вы хочаце. У гэтым першым прыкладзе я перагледжу спіс аб'ектаў карыстальнікаў, аб'яднаўшы іх імёны і прозвішчы, каб стварыць новую ўласцівасць пад назвай fullName.
forEach з іх прымае два параметры. Масіў, які мы перабіраем, - гэта першы параметр. Другі аргумент - гэта функцыя ітэрацыі, прычым першы параметр - гэта спасылка на асобны элемент, а другі - бягучы індэкс ітэрацыі.
7. _.карта
Карта, як і forEach, перабірае масіў значэнняў. Функцыя map, з іншага боку, вяртае новы масіў значэнняў, прадстаўлены функцыяй ітэрацыі. Мы выкарыстоўваем тую ж калекцыю карыстальнікаў, што і ў нашым прыкладзе forEach тут. Мы можам выкарыстоўваць _.map для стварэння новай зменнай, якая мае плоскі масіў поўных імёнаў усіх карыстальнікаў.
8. _.розніца
Функцыя розніцы створыць новы масіў значэнняў, якія адрозніваюцца паміж першым і другім масівамі. Важна адзначыць, што месца спрэчак уплывае на вынікі.
9. _.атрымаць
Функцыя _.get() можа дапамагчы нам знайсці элемент у аб'екце. Мы можам усталяваць значэнне па змаўчанні для функцыі _.get(), якое вяртаецца, калі элемент не знойдзены на пададзеным шляху. Функцыя _.get() прымае тры параметры, першы з якіх - гэта аб'ект, з якога мы жадаем атрымаць элемент. Шлях другі. Трэцяе значэнне - гэта значэнне па змаўчанні, якое мы хочам вярнуць, калі элемент не можа быць размешчаны.
10. _.знайсці
Функцыя _find() можа здацца ідэнтычнай метаду _.get(). Функцыя _.find(), як і метад _.get(), прымае тры параметры. Аднак, у адрозненне ад метаду _.get(), першым аргументам можа быць масіў або аб'ект. Другі аргумент вызначае функцыю, якая будзе выклікаць на кожнай ітэрацыі. Трэці ўваход - гэта пачатковы індэкс калекцыі. Паколькі функцыя _.find() перабірае кожны элемент калекцыі.
11. _.groupBy
Стварыце аб'ект, названы вынікам функцыі (або выпадкова абраным імем ўласцівасці), прычым кожнае значэнне будзе масівам аб'ектаў з аднолькавым ключом.
12. _.набор
Метад _.set() з'яўляецца зваротным метаду _.get(). Гэта зменіць значэнне элемента на дадзеным шляху. Аб'ект або масіў - гэта першы параметр, шлях - другі, а значэнне, якое вы хочаце ўсталяваць, - трэцяе.
13. _.злівацца
Ён функцыянуе аналагічна Object.assign, за выключэннем таго, што ён рэкурсуе глыбока ў асноўную структуру, каб абнавіць больш глыбокія аб'екты, а не замяніць іх.
14. ._зачыстка
Гэта даволі просты прыклад. Усе «сумяшчальныя дыякрытычныя пазнакі» выдаляюцца. Такім чынам «é» становіцца «е». Калі ёсць інтэрнацыяналізацыя і лакалізацыя, добрай практыкай з'яўляецца выдаленне заусенцев для функцый пошуку.
15. _.адскок
Гэта адна з найбольш эфектыўных стратэгій Lodash. Таксама можа быць цяжка зразумець, што ён робіць і калі вы павінны яго выкарыстоўваць. Метад _.debounce() вяртае функцыю. Функцыя метаду _.debounce() затрымае выклік да таго часу, пакуль не пройдзе пэўная колькасць мілісекунд з моманту апошняга выкліку функцыі.
заключэнне
Lodash - гэта магутнае пашырэнне мовы JavaScript. З мінімальнымі намаганнямі можна стварыць кароткі і эфектыўны код. Lodash таксама цалкам модульны. Нягледзячы на тое, што некаторыя з яго функцыянальных магчымасцяў у канчатковым рахунку могуць быць састарэлыя, я лічу, што ён па-ранейшаму будзе забяспечваць мноства пераваг для распрацоўшчыкаў, а таксама стымуляваць развіццё мовы JS.
Я спадзяюся, што гэтыя некалькі магчымасцяў Lodash дапамогуць вам убачыць, наколькі магутным можа быць Lodash пры працы з масівамі, аб'ектамі і калекцыямі. Вы можаце наведаць дакументацыя каб вывучыць мноства іншых варыянтаў, якія ён можа прапанаваць.
Пакінуць каментар