У вас есть два варианта:
Это оборачивает значение, с которым вы будете работать, и тогда вы можете цепочка больше операцийна нем без указания параметра.По окончании .value()
извлекает конечное значение.
const result = _.chain([...potentialClients])
.uniqBy(uniqueContact => uniqueContact.phoneNumbers[0].number)
.sortBy(uniqueContact => uniqueContact.givenName)
.value();
Использование функциональной композиции
const uniqFn = _.uniqBy(uniqueContact => uniqueContact.phoneNumbers[0].number);
const sortFn = _.sortBy(uniqueContact => uniqueContact.givenName);
const composedFn = _.flow(uniqFn, sortFn);
const result = composedFn([...potentialClients]);
Эта реализация возможна, если вы используете FP выпуск Lodash .Если нет, то вам нужно применить модификаторы к функциям, чтобы перевернуть аргументы и сделать их карри, что сделает их функциональное программирование дружественным, подобно тому, как это делает lodash / fp.Вот пример того, как это можно сделать:
//_.curry requires the arity to be declared, passing 2 satisfies both these functions
const makeFpFriendly = f => _.curry(_.flip(f), 2);
const uniqByFpFriendly = makeFpFriendly(_.uniqBy);
const sortByFpFriendly = makeFpFriendly(_.sortBy);