I need to parse json api response, with response.data equals:
[
{
"name": "Programming",
"subcategories": [
{"name": "web-development"},
{"name": "backend-development"},
{"name": "data-scince"}
]
},{
"name": "Design",
"subcategories": [
{"name": "Graphic-design"},
{"name": "Motion-design"},
{"name": "3D modeling"}
]
and I need to return one array[String] with all subcategories, ex [“web-development”, “backend-development” … “3D modeling”]
All that I did is:
let subs = categories.data.map(function(category) {
return category.subcategories.map(function(subcategory) {
return subcategory.name
})
})
and it returns Array of arrays with categories. Im sure, that there near a better and easier way. Thanks!
Advertisement
Answer
let 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"
}
]
}]
let subs = data.flatMap(function(category) {
return category.subcategories.map(function(subcategory) {
return subcategory.name
})
})
console.log(subs)Try using Array flatMap