You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否串联使用Lodash的uniqBy与sortBy方法处理同一集合?

当然可以串联Lodash的uniqBy和sortBy方法!

完全没问题,Lodash的设计本身就很支持这种方法的组合调用,有两种常见的方式可以实现你的需求,而且比分开写更简洁:

方式一:链式调用(可读性更高)

Lodash提供了_.chain()方法来开启链式调用,你可以把集合传入后,依次调用uniqBy和sortBy,最后用value()获取最终结果:

const processedClients = _.chain(potentialClients)
  .uniqBy(contact => contact.phoneNumbers[0].number)
  .sortBy(contact => contact.givenName)
  .value();

如果你的环境支持隐式链式(比如使用Lodash的模块化导入或者完整库),甚至可以不用_.chain(),直接链式调用:

// 注意:这种写法需要确保集合是经过Lodash包装过的,或者使用Lodash/fp版本
const processedClients = _.uniqBy(potentialClients, contact => contact.phoneNumbers[0].number)
  .sortBy(contact => contact.givenName);

方式二:嵌套调用(更直接)

如果你不习惯链式写法,也可以直接把uniqBy的返回结果作为sortBy的输入参数,这样逻辑也很清晰:

const processedClients = _.sortBy(
  _.uniqBy(potentialClients, contact => contact.phoneNumbers[0].number),
  contact => contact.givenName
);

小提示

你原来的代码里用了[...potentialClients]来复制数组,其实Lodash的uniqBy和sortBy都是纯函数,不会修改原数组,所以如果不需要额外复制的话,直接传入原数组就行啦。如果确实需要避免原数组的引用影响,保留展开运算符也完全没问题。

内容的提问来源于stack exchange,提问作者lecham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:26:23