Ответ распространяется на стандартную версию lodash.Пожалуйста, смотрите ответ @ Vlaz для ознакомления с функциональной версией lodash для программирования.
Когда вы пишете _.map(user => user.uid)
, это фактически вызывает функцию в то время.Что вы действительно пытаетесь сделать, так это создать функцию, которая похожа на _.map
, но один из ее аргументов уже установлен.
К счастью, в Lodash есть встроенная функция для обработки этой ситуации - _.partialRight
const userIds = _.flow(
_.partialRight(_.map, user => user.uid)
_.partialRight(_.filter, userId => userId !== currentUserId),
)(users);
Документация
В качестве альтернативы, если вы хотите использовать простой JS вместо импорта новой функции, вы можете просто обернуть ее в анонимную функциюправильно передать аргументы.
const userIds = _.flow(
(users) => _.map(users, user => user.uid),
(users) => _.filter(users, userId => userId !== currentUserId),
)(users);