我从后端获取了一个数组,该数组具有大量嵌套数组。每个数组元素都是一个公司,可能具有或不具有 Children 属性,该属性又是由公司组成的数组,每个公司可能具有也可能没有子公司。例如:
[
{
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"
}
]
}
]
我必须向每个公司对象添加一个“标签”属性。该属性等于“名称”属性。
如何用JavaScript做到这一点?
答案 0 :(得分:3)
必须在此处使用递归。
function addLabelRecursive(company) {
if (company.Name) {
company.Label = company.Name;
}
if (company.Children) {
company.Children.forEach(addLabelRecursive);
}
}
此功能会添加一个标签,如果存在子项,则会为每个子项自行运行。