Javascript json响应中的映射

Javascript json响应中的映射,javascript,arrays,json,Javascript,Arrays,Json,我需要解析json api响应,response.data等于: [ { "name": "Programming", "subcategories": [ {"name": "web-development"}, {"name": "backend-development"},

我需要解析json api响应,response.data等于:

[
    {
      "name": "Programming",
      "subcategories": [
        {"name": "web-development"},
        {"name": "backend-development"},
        {"name": "data-scince"}
      ]
    },{
      "name": "Design",
      "subcategories": [
        {"name": "Graphic-design"},
        {"name": "Motion-design"},
        {"name": "3D modeling"}
  ]
我需要返回一个包含所有子类别的数组[String],例如[“web开发”、“后端开发”…“3D建模”]

我所做的只是:

let subs = categories.data.map(function(category) {
                    return category.subcategories.map(function(subcategory) {
                        return subcategory.name
                    })
                    })

它返回带有类别的数组数组。我确信,有一个更好更容易的办法。谢谢

您可以通过替换以下内容获得平面阵列:

categories.data.map


您可以通过替换以下内容获得平面阵列:

categories.data.map

let数据=[{
“名称”:“编程”,
“子类别”:[{
“名称”:“web开发”
},
{
“名称”:“后端开发”
},
{
“名称”:“数据科学”
}
]
}, {
“名称”:“设计”,
“子类别”:[{
“名称”:“平面设计”
},
{
“名称”:“运动设计”
},
{
“名称”:“三维建模”
}
]
}]
let subs=data.flatMap(函数(类别){
返回类别.子类别.映射(函数(子类别){
返回subcategory.name
})
})
console.log(subs)
let数据=[{
“名称”:“编程”,
“子类别”:[{
“名称”:“web开发”
},
{
“名称”:“后端开发”
},
{
“名称”:“数据科学”
}
]
}, {
“名称”:“设计”,
“子类别”:[{
“名称”:“平面设计”
},
{
“名称”:“运动设计”
},
{
“名称”:“三维建模”
}
]
}]
let subs=data.flatMap(函数(类别){
返回类别.子类别.映射(函数(子类别){
返回subcategory.name
})
})

console.log(subs)
是否与
类别
相同?注意:这个数组来自API响应的事实与您的问题无关。
response
是否与
categories
相同?注意:这个数组来自API响应的事实与您的问题无关。