I am trying to create a nested JSX list items from nested object array. Below is the array:
[
{
"id": 1,
"name": "USA",
"values": [
{
"id": 2,
"name": "Chevy",
"values": [
{
"id": 3,
"name": "Suburban"
},
{
"id": 4,
"name": "Camaro",
"values": [...]
}
]
},
{
"id": 5,
"name": "Ford",
"values": [...]
}
]
}
]
Below is what the array should be converted to:
<ul>
<li>USA
<ul>
<li>Chevy
<ul>
<li>Suburban</li>
<li>Camaro</li>
</ul>
</li>
<li>Ford</li>
</ul>
</li>
</ul>
Here is my approach:
const resultArray = [];
data.forEach((item) => {
resultArray.push(
<li>{item.name}
)
if(item.values){
//recursively iterate and push into array
}
resultArray.push(</li>); //React does not allow this
});
return resultArray;
React does not allow adding individual markups into array. Please help provide a solution.
P.S.: I apologize in advance if you find something wrong with formatting. This is the first time I am posting on stackOverflow.