I'm getting an array from the backend that has an abritrary number of nested arrays. Each array element is a company and may or may not have a Children property which is again an array of companies that each may or may not have child companies. For example:
[
{
Name:"Company X",
Children:[
{
Name:"Company XY"
},
{
Name:"Company XZ",
Children:[
{
Name: "Company XZY" // third level of nested arrays, can be an abritrary number of levels
}
]
}
]
},
{
Name:"Company Y",
Children:[
{
Name:"Company YZ"
}
]
}
]
I have to add a "Label" property to each company object. The property is equal to the "Name" property.
How can I do this in JavaScript?
asked Nov 6, 2019 at 15:32
Green Mint
3,57812 gold badges36 silver badges65 bronze badges
1 Answer 1
Gotta use recursion here.
function addLabelRecursive(company) {
if (company.Name) {
company.Label = company.Name;
}
if (company.Children) {
company.Children.forEach(addLabelRecursive);
}
}
This function adds a label and if children exist runs itself for each child.
answered Nov 6, 2019 at 15:37
Anton Rusak
9364 silver badges19 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
lang-js