【问题标题】:_.pick for collections (underscore/lodash)_.pick 集合(下划线/lodash)
【发布时间】:2014-04-11 13:11:47
【问题描述】:

是否有一个 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'));

这有点冗长。

【问题讨论】:

  • 不,使用map 正是您应该做的。除非你想做一个_.pluck(stats, 'a')
  • 不,这不起作用。在实际用例中,我需要两个属性;)。
  • 你解决过这个问题吗?如果您找到解决方案,我很想听听。
  • 不,我使用的是详细版本。
  • 如果你想从一个集合中挑选整个对象,如果它的id 匹配,并将它添加到另一个集合中——基本上,使用一个.map称呼?有这方面的资源/模式吗?

标签: underscore.js lodash


【解决方案1】:

在我的示例中,我添加了一个名为 make 的方法来完成您的任务。

var _ = require('lodash');
_.make = (arr, ...args) => arr.map(obj => _.pick(obj, args));

【讨论】:

  • 你可以像我一样在第 4 行使用pick。这会简化事情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 2016-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-13
  • 1970-01-01
相关资源
最近更新 更多