【问题标题】:Javascript or lodash : filter an array of objects with value of a nested arrayJavascript 或 lodash:过滤具有嵌套数组值的对象数组
【发布时间】:2021-05-16 10:36:56
【问题描述】:

我有一个如下的用户数组(我已经缩短了它):

 [
  {
    "displayName": "Alaotra",
    "districts": [
      {
        "regions_id_region": "11",            
        "id_district": "102"
      },
      {           
        "regions_id_region": "11",            
        "id_district": "101",          
      }
    ]
  },
  {
    "displayName": "Alexandre",
    "districts": [
      {
        "regions_id_region": "42",
        "id_district": "411",           
      },
      {           
        "id_district": "409",           
        "regions_id_region": "42"
      }
    ]
  }
]

每个用户都有一个地区数组。 例如,我想获得一个过滤后的用户数组,其中包含“regions_id_region”=“11”的地区。 Lodash或Vanilla就可以了。 我花了一整天的时间试图实现它,但没有任何成功。 欢迎任何帮助。 谢谢。

【问题讨论】:

标签: javascript arrays object nested lodash


【解决方案1】:

过滤器的使用方法如下:

const users = [{
    "displayName": "Alaotra",
    "districts": [{
        "regions_id_region": "11",
        "id_district": "102"
      },
      {
        "regions_id_region": "11",
        "id_district": "101",
      }
    ]
  },
  {
    "displayName": "Alexandre",
    "districts": [{
        "regions_id_region": "42",
        "id_district": "411",
      },
      {
        "id_district": "409",
        "regions_id_region": "42"
      }
    ]
  }
]

const filtered = users.filter(u => u.districts.some(d => d.regions_id_region === '11'))
console.log(filtered)

【讨论】:

  • 谢谢大家的回答,我非常有用。如果“regions_id_region”在数组中,最好的方法是什么? ["11","42" ]?
猜你喜欢
  • 2017-02-19
  • 2019-04-14
  • 2017-09-01
  • 1970-01-01
  • 2020-09-17
  • 2022-01-09
  • 2019-10-15
  • 2017-06-15
  • 1970-01-01
相关资源
最近更新 更多