【问题标题】:Show category,sub category and its sub category hierarchy tree in nodejs-postgresql (sequelize js)在nodejs-postgresql中显示分类、子分类及其子分类层次树(sequelize js)
【发布时间】:2020-02-03 00:23:48
【问题描述】:

我的数据库如下:


标识 |姓名 |父母身份

1 |类别 1 |null

2 |类别2 | 1

3 |第三类 | 2


我的预期输出是

{
  id:1,
  name:"Cate1",
  parentId:null,
  subCate:[
   {
     id:2,
     name:"Cate2",
     parentId:1,
     subCate:[
           {
            id:3,
            name:"Cate3",
            parentId:2,
            subCate:[]
           }
         ]
   }
  ]
} 

等等……

那么如何得到这个结果。

【问题讨论】:

  • 你试过什么?您也可以粘贴您的示例输入吗?
  • 样本输入???
  • 输入数组将产生您的预期输出
  • { id:1, name:"Cate1", parentId:null, subCate:[ { id:2, name:"Cate2", parentId:1, } ] }, { id:2, name:"Cate2", parentId:null, subCate:[ { id:3, name:"Cate3", parentId:2, } ] }, { id:3, name:"Cate3", parentId:2, subCate:[ ] },

标签: mysql node.js postgresql express sequelize.js


【解决方案1】:

function getNestedChildren(arr, parentId) {
  var out = []
  for (var i in arr) {
    if (arr[i].parentId == parentId) {
      var children = getNestedChildren(arr, arr[i].id)

      if (children.length) {
        arr[i].subCate = children
      }
      out.push(arr[i])
    }
  }
  return out
}

console.log(JSON.stringify(getNestedChildren([
  {id: 1, name: 'edwd', parentId: null},
  {id: 2, name: 'ttt', parentId: null},
  {id: 3, name: 'ooo', parentId: 1},
  {id: 4, name: 'ppp', parentId: 3},
  {id: 5, name: 'lll', parentId: 4},
  {id: 6, name: 'mmm', parentId: 4},
  {id: 7, name: 'nnn', parentId: 3},
  {id: 8, name: 'zzz', parentId: 2}
], null)))

【讨论】:

    猜你喜欢
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    相关资源
    最近更新 更多