我有一个嵌套结构如下:
arr[3].title="a3";
arr[3].nextArr=[];
arr[2].title="a2";
arr[2].nextArr=arr[3];
arr[1].title="a1";
arr[1].nextArr=arr[2];
arr[0].title="a0";
arr[0].nextArr=arr[1];
喜欢这里!:
|_
|_
|_
如你所见,我有一个名为arr的数组,有四个成员。
如何从arr中创建四个独立的数组?
arrayOne=[{title:"a1"},{nextArr:[]}];
arraytwo=[{title:"a2"},{nextArr:[]}];
.
.
.
更新:我需要在AngularJS controller.js中进行转换。我收到服务器的响应,其中包含一个如上所述的数组。我必须让它平坦。内部数组的数量不是常数。我没有提到,因为我不知道算法。但是,根据答案,如果我更多地解释它似乎会更好。
Result = {arr[title:"a0",nextArr:{title:"a1",nextArr:{title:"a2",nextArr:{......}}}]};
答案 0 :(得分:0)
您可以使用yield
创建递归遍历层次结构的枚举器:
public IEnumerable<{class}> Flatten({class}[] data)
{
foreach({class} parent in data)
{
yield return parent;
foreach({class} child in flatten(parent.nextArr))
yield return child;
}
}