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

时间:2015-11-12 16:46:56

标签: javascript lodash

我使用Lodash搜索嵌套数组,并希望在找到匹配项时返回该对象。

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

setOpacity()

这是我到目前为止所拥有的:

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"
         }
      ]
   }
]

只是吐出结果。有点作品。

1 个答案:

答案 0 :(得分:11)

首先我们应该决定使用什么功能。过滤器https://lodash.com/docs#filter符合我们的要求,因为我们想要返回通过评估的内容。

困难的部分是制定评估。 lodash支持通过嵌套数组进行搜索,一旦你学会了语法,语法实际上非常直观。

_.filter(schools,
  {
    bus: [{id: 4}]
  }
);

相反,如果总线不是数组,那么它将是

_.filter(schools,
  {
    bus: {id: 4}
  }
);

警告:过滤器将始终返回一个数组,因此如果您只想要对象,请确保向其附加[0]。