首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Lodash从数组中找到许多结果?

如何使用Lodash从数组中找到许多结果?
EN

Stack Overflow用户
提问于 2016-04-01 01:44:49
回答 3查看 256关注 0票数 0

以下代码循环对象数组,使用_.find查找某个类别的对象,并将其推到panoramaCats数组中:

代码语言:javascript
复制
this.panoramas.forEach(panorama => {
  const panoramaCat = _.find(this.panoramas, { category: panorama.category })
  const panoramaCats = []
  panoramaCats.push(panoramaCat)
  payload[panorama.category] = panoramaCats
})

我以为_.find会找到这个类别的所有对象,但它只找到第一个对象。

如何更改代码,以便_.find找到包含该类别的所有对象?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-01 01:53:10

使用火柴查找与您的条件匹配的对象。

代码语言:javascript
复制
this.panoramas.forEach(panorama => {
  const panoramaCats = _.find(this.panoramas, _.matches({ category: panorama.category }))
  payload[panorama.category] = panoramaCats
})
票数 1
EN

Stack Overflow用户

发布于 2016-04-03 17:28:19

代码语言:javascript
复制
this.panoramas.forEach(panorama => {
    payload[panorama.category] = _.find(this.panoramas, {category: panorama.category})
})
票数 0
EN

Stack Overflow用户

发布于 2016-04-03 17:43:40

你考虑过使用.groupBy吗?我认为这比手工循环你的收藏更简单。

代码语言:javascript
复制
payload = _.groupBy(this.panoramas, 'category')

如果需要在有效负载对象中保留其他预先存在的属性,则可以使用.merge

代码语言:javascript
复制
payload = _.merge(payload, _.groupBy(this.panoramas, 'category'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36346688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档