Skip to content

Instantly share code, notes, and snippets.

@lolmaus
Created December 20, 2017 12:14
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save lolmaus/9e4bb90ed4d7a1e69e62da188eadb303 to your computer and use it in GitHub Desktop.
Save lolmaus/9e4bb90ed4d7a1e69e62da188eadb303 to your computer and use it in GitHub Desktop.
Часто используемые методы lodash
  • groupBy -- разбивает массив на подмассивы по критерию
  • keyBy -- то же самое, когда критерий не повторяется
  • map, forEach, find умеют обходить объекты, очень удобно
  • mapKeys, mapValues -- преобразование объектов
  • toPairs и fromPairs -- преобразовывает {foo: 'bar'} в [['foo', 'bar']] и обратно
  • intersection, difference, union -- взаимодействие нескольких массивов
  • flatten -- без него вообще не жизнь
  • flatMap -- map+flatten, очень удобно
  • findIndex, sortedIndex -- когда тебе нужен только индекс элемента, а не сам элемент
  • findKey -- когда нужно найти ключ в объекте по критерию
  • *Last* и *Right* -- когда надо обходить коллекцию с конца
  • sample -- часто использую в Mirage
  • curry -- каррирование. Обернутая функция ведет себя как closure action: принимает аргументы частями, выдавая промежуточную переиспользуемую обертку, а при получении всех аргументов выдает результат
  • cloneDeep -- как правило, потребность в этом методе -- признак неправильных действий, но все же я им иногда пользуюсь
  • isNumber -- не считает NaN числом
  • random -- удобно для "дай мне рандомное целое число от А до Б"
  • get и assign -- в отличие от Ember'овских аналогов, умеет обращаться к элементам массива: foo.get('bar.3.baz')
  • forOwn опять же
  • tempate -- легковесный шаблонизатор

Вне Ember еще пригождается манипулирование строками, всякие debounce/throttle, *By и т. п.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment