const nodes = [
{
Children:[{
Children:[{
Children:[{
Children:[],
NodeId: 'N1111',
NodeNane: 'Node1111'
},
{
Children:[],
NodeId: 'N1112',
NodeNane: 'Node1112'
}],
NodeId: 'N111',
NodeNane: 'Node111'
},
{
Children:[],
NodeId: 'N112',
NodeNane: 'Node112'
}],
NodeId: 'N11',
NodeNane: 'Node11'
},
{
Children:[],
NodeId: 'N12',
NodeNane: 'Node12'
}],
NodeId: 'N1',
NodeNane: 'Node1'
},
{
Children:[],
NodeId: 'N2',
NodeNane: 'Node2'
},
{
Children:[{
Children:[{
Children:[{
Children:[],
NodeId: 'N3111',
NodeNane: 'Node3111'
},
{
Children:[],
NodeId: 'N3112',
NodeNane: 'Node3112'
}],
NodeId: 'N311',
NodeNane: 'Node311'
},
{
Children:[],
NodeId: 'N312',
NodeNane: 'Node312'
}],
NodeId: 'N31',
NodeNane: 'Node31'
},
{
Children:[],
NodeId: 'N32',
NodeNane: 'Node32'
}],
NodeId: 'N3',
NodeNane: 'Node2'
}
]
const getNodes = ar => {
const node=a=>a.Children.length==0?{NodeId: a.NodeId, NodeName: a.NodeNane}:getNodes(a.Children)
return [].concat(...ar.map(node))
}
getNodes(nodes)
ramda link
{
Children:[{
Children:[{
Children:[{
Children:[],
NodeId: 'N1111',
NodeNane: 'Node1111'
},
{
Children:[],
NodeId: 'N1112',
NodeNane: 'Node1112'
}],
NodeId: 'N111',
NodeNane: 'Node111'
},
{
Children:[],
NodeId: 'N112',
NodeNane: 'Node112'
}],
NodeId: 'N11',
NodeNane: 'Node11'
},
{
Children:[],
NodeId: 'N12',
NodeNane: 'Node12'
}],
NodeId: 'N1',
NodeNane: 'Node1'
},
{
Children:[],
NodeId: 'N2',
NodeNane: 'Node2'
},
{
Children:[{
Children:[{
Children:[{
Children:[],
NodeId: 'N3111',
NodeNane: 'Node3111'
},
{
Children:[],
NodeId: 'N3112',
NodeNane: 'Node3112'
}],
NodeId: 'N311',
NodeNane: 'Node311'
},
{
Children:[],
NodeId: 'N312',
NodeNane: 'Node312'
}],
NodeId: 'N31',
NodeNane: 'Node31'
},
{
Children:[],
NodeId: 'N32',
NodeNane: 'Node32'
}],
NodeId: 'N3',
NodeNane: 'Node2'
}
]
const getNodes = ar => {
const node=a=>a.Children.length==0?{NodeId: a.NodeId, NodeName: a.NodeNane}:getNodes(a.Children)
return [].concat(...ar.map(node))
}
getNodes(nodes)
ramda link