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