数据格式转换

有没有大佬知道如何上面的数据转换成下面那种

{
  a:1,
  children: [{
    a:2,
    children:[{
      children:[{
        a:3
      },{
        a:4
      }]
    }]
  },{
    a:5,
    children:[{
      children:[{
        a:6
      },{
        a:7
      }]
    }]
  }]
}

转换成

[
  [{a:1},{a:2},{a:3}],
  [{a:1},{a:2},{a:4}],
  [{a:1},{a:5},{a:6}],
  [{a:1},{a:5},{a:7}],
]
阅读 1.3k
1 个回答
(function dfs(node, result=[], current=[]) {
  // 当前值入栈
  node.a !== undefined && current.push({a: node.a});
  if(node.children) {
    node.children.forEach(v => dfs(v, result, current))
  } else {
    result.push([...current]);
  }
    // 递归至叶子节点后回溯出栈,进行下一分支   
  node.a !== undefined && current.pop();
    return result; 
})({
  a:1,
  children: [{
    a:2,
    children:[{
      children:[{
        a:3
      }, {
        a:4
      }]
    }]
  },{
    a:5,
    children:[{
      children:[{
        a:6
      },{
        a:7
      }]
    }]
  }]
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏