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
-- часто использую в Miragecurry
-- каррирование. Обернутая функция ведет себя как closure action: принимает аргументы частями, выдавая промежуточную переиспользуемую обертку, а при получении всех аргументов выдает результатcloneDeep
-- как правило, потребность в этом методе -- признак неправильных действий, но все же я им иногда пользуюсьisNumber
-- не считаетNaN
числомrandom
-- удобно для "дай мне рандомное целое число от А до Б"get
иassign
-- в отличие от Ember'овских аналогов, умеет обращаться к элементам массива:foo.get('bar.3.baz')
forOwn
опять жеtempate
-- легковесный шаблонизатор
Вне Ember еще пригождается манипулирование строками, всякие debounce
/throttle
, *By
и т. п.