Я пытаюсь реализовать эту точную функцию
const getItem = (items, id) => items.find(item => item.id === id);
в стиле point-free с использованием ramda.js.
Когда я использую что-то вроде этого:
const getItem = find(propEq('id'));
первые items
параметров будут переданы для find
функции, но мы потеряем второй параметр id
.
Вопрос в том, как реализовать функцию getItem
в стиле point-free?
Если вы можете изменить порядок аргументов функции, useWith
является простым решением:
const getItemById = R.useWith(
R.find,
[R.propEq('id')]
);
console.log(
getItemById(
'b',
[{ id: 'a' }, { id: 'b' }]
)
);
<script src="/ramda.min.js"></script>
R.useWith(R.flip(R.find), [R.identity, R.propEq('id')])
. Но в этот момент лямбда, вероятно, чище.