Javascript 返回递归的最后一次迭代的映射返回?

Javascript 返回递归的最后一次迭代的映射返回?,javascript,Javascript,我正在使用递归遍历这个对象的子对象数组。然而,它正在返回顶级家长。对象数组是: const orgs = { children:[{name:'Core Enginerinng Ops', orgId:741, children:[{name:'Child Engineering Ops', orgId:5656, children:[{name: 'Child Engineering Last LEVEL AHAHHH', or

我正在使用递归遍历这个对象的子对象数组。然而,它正在返回顶级家长。对象数组是:

const orgs = {
   children:[{name:'Core Enginerinng Ops', orgId:741,
             children:[{name:'Child Engineering Ops', orgId:5656, 
                children:[{name: 'Child Engineering Last LEVEL AHAHHH', orgid:6969}]},{name: 'Child 2 Engineering OPS', orgId: 852}]},{name: 'Data Services Engineering', orgId: 456,
             children:[{name:'Child Data Services', orgId:978},{name: 'Child 2 Data Services', orgId: 354}]}]
    }
我的最终目标是将对象保存到一个新数组中,每个父对象和子对象只包含名称和orgId

flattenOrgs = (organizations) => {
  const flatArray =organizations.map(org => {
    if (org.children && org.children.length > 0) {
      this.flattenOrgs(org.children)
    }
    console.log(org.name)
    return org.name
  })
  return flatArray
}
但是,当我通过这个使用递归的函数传递它时,它只返回'org.name':
[“核心工程操作”,“数据服务工程”]
。我对递归不是很在行,但是
console.log(org.name)
按预期打印出每个单独的名称对我来说没有意义。。。但它没有返回那个名字

编辑
console.log(org.name)
返回前

儿童工程最后一级AHAHH

儿童工程处

儿童2工程处

核心工程运作

儿童数据服务

儿童2数据服务

数据服务工程


您可以减少数组而不是映射,因为您还需要子元素

const
orgs={children:[{name:'Core Engineering Ops',orgId:741,children:[{name:'Child Engineering Ops',orgId:5656,children:[{name:'Child Engineering Last LEVEL ahahh',orgId:6969}]},{name:'Child 2 Engineering Ops',orgId:852}},{name:'Data Services Engineering',orgId:456,children[{name:'Child Data Services',orgId:978},{name:'Child 2 Data Services',orgId:354}]},
扁平化组织=(组织)=>
减少((r,{name,orgId,children})=>
r、 concat({name,orgId},flattorgs(children | |[]),[]);
console.log(扁平化组织(组织.子组织));

.as控制台包装{max height:100%!important;top:0;}
我希望下面的代码能够满足您的期望:

常数={
儿童:[{
名称:“核心工程运营”,
机构代码:741,
儿童:[{
名称:“儿童工程行动”,
性别:5656,
儿童:[{
名称:“儿童工程最后一级AHAHH”,
性别:6969
}]
}, {
姓名:“儿童2工程行动”,
机构代码:852
}]
}, {
名称:“数据服务工程”,
性别:456,
儿童:[{
名称:“子数据服务”,
性别:978
}, {
名称:“儿童2数据服务”,
性别:354
}]
}]
}
console.log(orgs.children.map)(child=>{
让newchild={
name:child.name,
orgId:child.orgId
}
child.children&&child.children.map(innerchild=>{
newchild.children={
name:innerchild.name,
orgId:innerchild.orgId
}
innerchild.children&&innerchild.children.map(innermostChild=>{
newchild.children.children={
名称:innermostChild.name,
orgId:innermostChild.orgId
}
})
})
返回新孩子

}))
Nina……我觉得你刚刚用.reduce向我展示了作弊代码。我以前从未听说过它……谢谢