lodash — знай свою стандартную библиотеку

от автора

image

Знающие люди рекомендуют разработчикам периодически пробегать глазами свою стандартную библиотеку, чтобы лучше представлять ее возможности. Зачем очередной раз изобретать велосипед, когда до нас уже столько сделано, и, главное, хорошо оттестировано, а бывает даже и нормально задокументировано. Говорят, полное использование стандартной библиотеки здорово повышает производительность.

Что же, в последнее время, в своей работе я во всех проектах задействую lodash (кому-то может больше нравиться underscore). Для меня это, фактически, — стандарт. В очередной раз пробегая глазами API, я решил составить для себя шпаргалку в виде: «название функции» — «краткое описание». Так удобно освежать API в памяти. Может кому пригодится.

Массивы

compact

Убираем из массива все пустые элементы (0, "", null, undefined)

difference

Создаем новый массив, как разницу, где из первого массива исключили все значения второго (АБ)

findIndex

Возвращает индекс первого элемента, по которому callback вернул true

findLastIndex

Возвращает индекс первого с конца элемента, по которому callback вернул true

first

Возвращает первый или несколько первых элементов массива

flatten

Извлекает, в виде массива, элементы из объектов, содержащихся в передаваемом массиве

indexOf

Возвращает индекс первого совпадающего (===) элемента, если массив сортирован можно ускорить поиск

initial

Возвращает начальную часть массива (кроме n последних)

intersection

Возвращает пересечение массивов (нескольких)

last

Возвращает последний или несколько последних элементов массива

lastIndexOf

Возвращает индекс последнего совпадающего (===) элемента. (можно искать не с самого конца)

pull

Удаляет переданные элементы из массива

range

Создает массив с числами от start до end (можно выбрать шаг)

remove

Удаляет из массива элементы по заданному правилу и возвращает массив удаленных элементов

rest

Возвращает все кроме первого (нескольких первых) элементов массива

sortedIndex

Возвращает индекс вставки текущего значения в сортированном массиве

union

Возвращает массив уникальных значений — результат объединения нескольких массивов

uniq

Создает копию массива без дубликатов

without

Создает новый массив из существующего исключая некоторые значения

xor

Создает новый массив — «семантическую разницу» между переданными массивами

zip

Создает массив сгруппированных в подмассивы элементов. На вход принимает несколько массивов. Собирает так: первые элементы всех входных массивов попадают в первую группу и т.д.

zipObject

Собирает объект из двух массивов (с ключами и со значениями)

Коллекции

at

Создает новую коллекцию, только из перечисленных элементов

contains

Проверяет, содержится (содержатся) ли определенный элемент в коллекции

countBy

Создает объект, ключами которого будут значения, возвращаемые функцией обратного вызова, а значениями — количество соответствующих возвратов

every

Проверка на то, что все элемены коллекции истины (или удовлетворяют условию).

filter

Пробегает по всем элементам коллекции и возвращает МАССИВ из элементов, удовлетворяющих условию

find

Возвращает первый элемент коллекции, отвечающий заданным критериям

findLast

То же самое, что и find, только с конца

forEach

Пробегается по всем элементам коллекции, запуская фукнцию обратного вызова для каждого элемента

forEachRight

То же самое, что и forEach, только с конца

groupBy

Создает коллекцию, ключами которой являются значения, возвращенные функцией обратного вызова, а значениями — массивы из первоначальных элементов коллекции

indexBy

Создает коллекцию, ключами которой являются значения, возвращенные функцией обратного вызова, а значениями — последние элементы первоначальной коллекции с соответстующим ключом

invoke

Выполняет определенный метод для каждого элемента коллекции и возвращает массив из результатов этого выполнения

map

Создает массив элементов, прогоняя каждый элемент коллекции через функцию обратного вызова

max

Возвращает максимальное значение коллекции

min

Возвращает минимальное значение коллекции

pluck

Возвращает все значения определенного свойства коллекции

reduce

Уменьшаем коллекцию до значения, получаемое вызовом функций обратного вызова для каждого значени. В эту функцию, кроме самого значения, передается также результат предыдущего вызова.

reduceRight

То же самое, что и reduce, только с конца

reject

В противоположность filter — эта функция возвращает массив элементов коллекции, которые не удовлетворяют условию

sample

Возвращает случайный элемент коллекции

shuffle

Возвращает массив из перемешанных в сучайном порядке элементов коллекции

size

Возвращает размер коллекции

some

Проверка на то, что хотя бы один элемент коллекции истиен (или удовлетворяет условию).

sortBy

Возвращает массив сортированных по возрастанию элементов коллекции. Для сортировки используются значения получаемые функцией обратного вызова по каждому элементу.

toArray

Преобразует коллекцию к массиву. Полезно для работы с arguments

where

Проводит глубокое сравнение каждого элемента с определенным объектом. Возвращает массив, удовлетворяющий сравнению.

Функции

after

Возвращает функцию, которая вызовет переданный колбек только после n-ого вызова

bind

Возвращает функцию, которая при вызове будет привязана к текущему this, к привязанным аргументам и аргументам, предающимся в саму вызванную функцию.

bindAll

Привязывает все методы объекта к самому этому объекту (this в методах всегда будет сам объект)

bindKey

Привязывает метод объекта к самому объетку (на момент привязки, метод может еще не существовать)

compose

Возвращает функцию — композицию из переданных функций. Передаем f,g,h — возвращает функцию = f(g(h()))

curry

Принимает на вход функцию с n параметрами, а возвращает функцию, которая в случае если параметро достаточно — вызовет входную, если нет, возвратит другую функцию, передав оставшиеся параметры которой — вызовется первоначальная.

debounce

Возвращает функцию, которая запустит входную функцию только выдержав паузу после своего последнего запуска. (устранение дребезжания)

defer

Вызовет входную функцию тогда, когда освободится текущий стек вызова (в начале следующего цикла событий)

delay

Вызовет входную функцию через n миллисекунд

memoize

Возвращает функцию, которая кэширует результаты своего выполнения, и не выполняется, если результат есть в кэше.

once

Возвратит функцию, которая вызовет входную только один раз. В последующие разы будет возвращаться полученный результат.

partial

То же самое, что и bind, но не привязывает this

partialRight

То же самое, что и partial, но привязывается к параметрам справа

throttle

Возвращает функцию, которая вызывает исходную не чаще чем один раз в n миллисекунд

wrap

Создает функцию, в первый параметр которой будет передан первый параметр врапера.

Объекты

assign

Дополняет объект отсутствующими (не просто undefined) свойствами из другого объекта

clone

Делает копию объекта (вложенные объекты копируются по ссылке)

cloneDeep

Глубокое копирование объекта (вложенные объекты копируются по содержанию)

create

Создает объект по переданному прототипу и свойствам

defaults

Дополняет объект отсутствующими (=== undefined) свойствами из другого объекта — задает умолчания

findKey

Ищет первый объект удовлетворяющий условиям — возвращает ключ

findLastKey

Ищет последний объект удовлетворяющий условиям — возвращает ключ

forIn

Обходит все свойства объекта (включая внутренние), вызывая для каждого из них функцию обратного вызова

forInRight

То же самое что и forIn только с конца

forOwn

Обходит все собственные свойства объекта, вызывая для каждого из них функцию обратного вызова

forOwnRight

То же самое что и forOwn только с конца

functions

Возвращает отсортированный массив имен всех свойств объекта, значениями которых ялвяются функции

has

Проверяет, является ли указанное свойство собственным свойством объекта

invert

Создает объект у которого ключи и значения поменяны местами

isArguments

Проверяет, является ли значение — объектом arguments

isArray

Проверяет, является ли значение массивом

isBoolean

Проверяет, является ли значение булевой переменной

isDate

Проверяет, является ли значение массивом

isElement

Проверяет, является ли значение DOM-элементом

isEmpty

Проверяет, является ли значение пустым. Массивы, строки, arguments-объекты с нулевой длинной считаются пустыми

isEqual

Проводит глубокое сравнение двух значений

isFinite

Проверяет, является ли данное значение конечным числом, или же оно может быть приобразовано к нему

isFunction

Проверяет, ялвяется ли данное значение функцией

isNaN

Проверяет значение на === NaN (это не то же самое, что стандартная isNuN, которая возвращает true для undefined и не числовых значений)

isNull

Проверяет значение на === null

isNumber

Проверяет, является ли значение числом (NaN тоже считается числом)

isObject

Проверяет, является ли значение объектом

isPlainObject

Проверяет, является ли значение чистым объектом (созданным конструктором Object)

isRegExp

Проверяет, является ли значение регулярным выражение

isString

Проверяет, является ли значение строкой

isUndefined

Проверяет значение на === undefined

keys

Возвращает массив ключей объекта

mapValues

Созает новый объект с такими же ключами, как у исходного, значения получаются вызовом callback-функции к каждому элементу

merge

Рекурсивно добавляет переданные объекты в объект назначения

omit

Возвращает объект, у которого убраны некоторые свойства

pairs

Создает из объекта двумерный массив, типа [[key1, value1], [key2, value2]].

pick

Создает из объекта другой объект со свойствами из списка

transform

Более простая альтернатива reduce — позволяет трансформировать входящий объект в другой, посредством функции обратного вызова, в которую передается кроме элементов еще и результирующий объект

values

Возвращает массив значений объекта

Утилиты

now

Возвращает текущий Unix-time в миллисекундах

constant

Создает функцию, возвращающую переданное значение

createCallback

Создает функцию, коллбек — используется для внутренних целей lodash

escape

Экранирует символы &, <, >, ", и ‘ соответсующими html-сущностями

identity

Функция возвращает первый переданный в нее аргумент

mixin

Добавляет в объект (или в сам lodash) элементы преданного объекта. Если объект-приемник — функция, добавляет свойства в прототип.

noConflict

Делает _ равным старому значению (до запуска lodash), и возвращает указатель на lodash

noop

Пустая функция. Возвращает undefined

parseInt

Извлекает число из строки, по умолчанию работает всегда с 10-ой системой счисления (в отличии от стандартной)

property

Возвращает функцию в стиле pluck, вызов которой с объектом в качестве параметра, вернет значение определенного свойства.

random

Вернет случайное число из диапазона. Может дробное.

result

Вернет значение свойства в объекте (если значением будет функция, она будет вызвана и возвращен ее результат)

runInContext

Вернет новую lodash-функцию привязанную к заданному контексту

template

Микрошаблонизатор

times

Выполняет указанный callback n-раз, возвращая массив результатов

unescape

Функция, обратная escape

uniqueId

Возвращает уникальный числовой ID (число, каждый раз на единицу больше. можно передавать префикс)

P.S. Я сам, конечно, не использовал все 100% функций в своей работе, поэтому возможны неточности — пишите в личку, все поправлю. По поводу орфографии — туда же.

ссылка на оригинал статьи http://habrahabr.ru/post/217515/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *