Most useful methods of ‘ramda.js’

Michael Pautov
2 min readSep 5, 2020


List of methods:

  1. Pluck
  2. ApplySpec
  3. Cond
  4. PropEq
  5. Pipe
  6. FromPairs
  7. PathOr


Using all the time. Go throw the array and take the value which we put as the key

const getAges = R.pluck(‘age’);getAges([{name: ‘fred’, age: 29}, {name: ‘wilma’, age: 27}]); //=> [29, 27]


The gold key when we would like to format or translate our values of the object

const getTranslated = R.applySpec({  header: i18n.translate,  content: i18n.translate});getTranslated(article); //=> {header: ‘Translated header’, content: ‘Translated content’}


The devilish replacement for all the mad “switch” and all the awful if / else cases.

const fn = R.cond([  [R.equals(0), R.always(‘water freezes at 0°C’)],  [R.equals(100), R.always(‘water boils at 100°C’)],  [R.T, temp => ‘nothing special happens at ‘ + temp + ‘°C’]]);fn(0); //=> ‘water freezes at 0°C’fn(50); //=> ‘nothing special happens at 50°C’fn(100); //=> ‘water boils at 100°C’


Helps to sort and filter the list of data

const abby = {name: ‘Abby’, age: 7, hair: ‘blond’};const fred = {name: ‘Fred’, age: 12, hair: ‘brown’};const rusty = {name: ‘Rusty’, age: 10, hair: ‘brown’};const alois = {name: ‘Alois’, age: 15, disposition: ‘surly’};const kids = [abby, fred, rusty, alois];const hasBrownHair = R.propEq(‘hair’, ‘brown’);R.filter(hasBrownHair, kids); //=> [fred, rusty]


Helper for implementation graceful functions

const getFirstFiveBooks = R.pipe(   R.filter(propEq(‘type’, ‘book’),   R.path(‘bookInfo’),   R.take(5));


From array to object

R.fromPairs([[‘a’, 1], [‘b’, 2], [‘c’, 3]]); //=> {a: 1, b: 2, c: 3}


When you not sure about your path of the object

R.pathOr(‘N/A’, [‘a’, ‘b’], {a: {b: 2}}); //=> 2R.pathOr(‘N/A’, [‘a’, ‘b’], {c: {b: 2}}); //=> “N/A”