I need to parse json api response, with response.data equals:
JavaScript
x
16
16
1
[
2
{
3
"name": "Programming",
4
"subcategories": [
5
{"name": "web-development"},
6
{"name": "backend-development"},
7
{"name": "data-scince"}
8
]
9
},{
10
"name": "Design",
11
"subcategories": [
12
{"name": "Graphic-design"},
13
{"name": "Motion-design"},
14
{"name": "3D modeling"}
15
]
16
and I need to return one array[String] with all subcategories, ex [“web-development”, “backend-development” … “3D modeling”]
All that I did is:
JavaScript
1
6
1
let subs = categories.data.map(function(category) {
2
return category.subcategories.map(function(subcategory) {
3
return subcategory.name
4
})
5
})
6
and it returns Array of arrays with categories. Im sure, that there near a better and easier way. Thanks!
Advertisement
Answer
JavaScript
1
33
33
1
let data = [{
2
"name": "Programming",
3
"subcategories": [{
4
"name": "web-development"
5
},
6
{
7
"name": "backend-development"
8
},
9
{
10
"name": "data-scince"
11
}
12
]
13
}, {
14
"name": "Design",
15
"subcategories": [{
16
"name": "Graphic-design"
17
},
18
{
19
"name": "Motion-design"
20
},
21
{
22
"name": "3D modeling"
23
}
24
]
25
}]
26
27
let subs = data.flatMap(function(category) {
28
return category.subcategories.map(function(subcategory) {
29
return subcategory.name
30
})
31
})
32
33
console.log(subs)
Try using Array flatMap