Javascript 如何在嵌套数组中获取项

Javascript 如何在嵌套数组中获取项,javascript,arrays,angular,typescript,Javascript,Arrays,Angular,Typescript,我有这样一个数组: [ { "id": 1, "name": "Vehicle", "subCategories": [ { "subCategoryId": 1, "subCategoryName": "Car" } ] }, { "id": 2, "name": "Delivery", "subCategories": [ { "subCat

我有这样一个数组:

[
  {
    "id": 1,
    "name": "Vehicle",
    "subCategories": [
      {
        "subCategoryId": 1,
        "subCategoryName": "Car"
      }
    ]
  },
  {
    "id": 2,
    "name": "Delivery",
    "subCategories": [
      {
        "subCategoryId": 1,
        "subCategoryName": "Furniture"
      }
    ]
  },
  {
    "id": 3,
    "name": "Home Services",
    "subCategories": [
      {
        "subCategoryId": 1,
        "subCategoryName": "Lawn Mowing"
      }
    ]
  }
]
我想从一个称为子类别的数组中的所有类别中获取所有子类别


我尝试过映射、还原、concat等,但似乎无法获得预期的结果。

您可以使用destructuring从每个对象中提取
子类别
数组,然后使用
.flatMap
将其展平为如下所示的数组:

const arr=[{id:1,名称:“车辆”,子类别:[{subCategoryId:1,子类别名称:“汽车”}],{id:2,名称:“交付”,子类别:[{subCategoryId:1,子类别名称:“家具”}],{id:3,名称:“家庭服务”,子类别:[{subCategoryId:1,子类别名称:“割草”}];
const subcategories=arr.flatMap(({subcategories})=>subcategories);

console.log(子类别)
您可以使用destructuring从每个对象中提取
子类别
数组,然后使用
.flatMap
将其展平为如下数组:

const arr=[{id:1,名称:“车辆”,子类别:[{subCategoryId:1,子类别名称:“汽车”}],{id:2,名称:“交付”,子类别:[{subCategoryId:1,子类别名称:“家具”}],{id:3,名称:“家庭服务”,子类别:[{subCategoryId:1,子类别名称:“割草”}];
const subcategories=arr.flatMap(({subcategories})=>subcategories);

console.log(子类别)根据浏览器支持需要,您可能需要使用polyfill,但这正是
flatMap
的优点:

假设示例数据位于名为
data
的变量中,调用

data.flatMap(item => item.subcategories);

根据您的浏览器支持需要,您可能需要使用polyfill,但这正是
flatMap
最适合的功能:

假设示例数据位于名为
data
的变量中,调用

data.flatMap(item => item.subcategories);