JS (ES6): Filter array based on nested array attributes

前端 未结 7 999
醉梦人生
醉梦人生 2020-12-20 17:48

I have an array, which looks like this:

const persons = [
  {
    name: \"Joe\",
    animals: [
      {species: \"dog\", name: \"Bolt\"},
      {species: \"c         


        
7条回答
  •  难免孤独
    2020-12-20 18:33

    You can use filter() with some() method to check if some of the objects in animals array has species == cat.

    const persons = [{"name":"Joe","animals":[{"species":"dog","name":"Bolt"},{"species":"cat","name":"Billy"}]},{"name":"Bob","animals":[{"species":"dog","name":"Snoopy"}]}]
    
    const result = persons.filter(({animals}) => {
      return animals.some(({species}) => species == 'cat')
    })
    
    console.log(result)

提交回复
热议问题