集合中的 _.pick (underscore/lodash)

8
有没有一种lodash函数可以通过挑选指定的属性从其他集合中创建一个新的集合?
stats = [{a:1, b:1}, {a:2, b:2}]
reducedStats = _.pick(stats, 'a'); // now is [{a:1},{a:2}]

pick 只适用于对象,而不适用于集合。

我通过以下方式实现:

stats = stats.map(_.partialRight(_.pick, 'a'));

这有点啰嗦。


1
不,使用 map 就是你应该做的。除非你想要执行 _.pluck(stats, 'a') - Bergi
1
不,那样行不通。在实际应用中,我需要两个属性 ;)。 - Stephan Hoyer
你解决了吗?如果你找到了解决方案,我很想听听。 - adamdport
不,我使用了冗长的版本。 - Stephan Hoyer
如果您想通过一个 .map 调用来选择与 id 匹配的整个对象,并将其从一个集合添加到另一个集合中,是否有相应的资源/模式可供使用? - Cody
1个回答

2
在我的例子中,我添加了一个名为make的方法来完成你的任务。
var _ = require('lodash');
_.make = (arr, ...args) => arr.map(obj => _.pick(obj, args));

你可以像我一样在第4行使用 pick。那会简化事情。 - Stephan Hoyer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接