如何在JavaScript中循环遍历任意数量的嵌套数组

时间:2019-11-06 15:32:40

标签: javascript

我从后端获取了一个数组,该数组具有大量嵌套数组。每个数组元素都是一个公司,可能具有或不具有 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做到这一点?

1 个答案:

答案 0 :(得分:3)

必须在此处使用递归。

function addLabelRecursive(company) {
  if (company.Name) {
    company.Label = company.Name;
  }
  if (company.Children) {
    company.Children.forEach(addLabelRecursive);
  }
}

此功能会添加一个标签,如果存在子项,则会为每个子项自行运行。

Working code for your sample data