首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lodash -搜索嵌套数组并返回对象

Lodash -搜索嵌套数组并返回对象
EN

Stack Overflow用户
提问于 2015-11-13 00:46:56
回答 1查看 11.3K关注 0票数 9

我使用Lodash搜索嵌套数组,如果找到匹配的数组,则返回该对象。

对于每个对象,搜索总线4。如果找到,则返回该对象(在本例中为学校'xyz')。

代码语言:javascript
复制
var schools = [  
   {  
      "id":1,
      "school":"abc",
      "bus":[  
         {  
            "id":1,
            "name":"first bus"
         },
         {  
            "id":2,
            "name":"second bus"
         }
      ]
   },
   {  
      "id": 2,
      "school":"xyz",
      "bus":[  
         {  
            "id":3,
            "name":"third bus"
         },
         {  
            "id":4,
            "name":"fourth bus"
         }
      ]
   }
]

这是我到目前为止所知道的:

代码语言:javascript
复制
_.forEach(schools, function(school){console.log(_.where(school.bus, {'id':4}))})

只是把结果吐出来。有点用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-13 01:02:09

首先,我们应该决定使用什么函数。Filter https://lodash.com/docs#filter适合我们的情况,因为我们希望返回通过评估的内容。

困难的部分是精心设计评估。lodash确实支持通过嵌套数组进行搜索,一旦你学会了,它的语法实际上是相当直观的。

代码语言:javascript
复制
_.filter(schools,
  {
    bus: [{id: 4}]
  }
);

而不是如果总线不是数组,在这种情况下它将

代码语言:javascript
复制
_.filter(schools,
  {
    bus: {id: 4}
  }
);

注意: filter总是会返回一个数组,所以如果你只想要一个对象,一定要在它后面追加一个。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33676823

复制
相关文章

相似问题

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