我正在使用lodash(尽管不必使用解决方案),但我想转换以下结构:

{ prop1: 'root',
  prop2: 'someVal',
  children: [
    { prop1: 'first Child',
      prop2: 'some other val',
      children: [
        { prop1: 'last child'
          prop2: 'another value'
          children: []
        }
      ]
    }
  ]
}


到一个平面数组:

[ { prop1: 'root', prop2: 'someVal' },
  {prop1: 'firstChild', prop2: 'some Other Val'},
  {prop1: 'last child', prop2: 'another value'}
]


深度可以变化,并且最后一个孩子将始终为其[]属性分配children;请注意,在特定情况下,子数组将始终只有一个项目

应该是相当简单的,但是由于某些原因,我似乎无法动弹

谢谢

最佳答案

解决了此代码段(在CoffeeScript中)

flatten = (node) ->
        row = node
        _.each node.children or [], (el) ->
            flatten el
        ancestors.push row

关于javascript - JS-Lodash;嵌套对象( parent / child )到平面数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23999471/

10-09 21:21