Do It With Ramda Part I¶
Find users by name¶
Consider this array of jedi objects:
const users = [
{ name: 'Ahsoka Tano', level: 9 },
{ name: 'Darth Vader', level: 8 },
{ name: 'Aayla Secura', level: 9 },
{ name: 'Yoda', level: 10 },
];
How to return the object whose name matches?
Vanilla JavaScript:
function findByName(name, users) {
return users.find(user => user.name === name);
}
findByName('Aayla Secura', users);
//=> { name: 'Aayla Secura', level: 9 }
Ramda:
const findByName = compose(find, propEq('name'));
findByName('Aayla Secura')(users);
//=> { name: 'Aayla Secura', level: 9 }