Mysql 在nodejs postgresql(sequelize js)中显示类别、子类别及其子类别层次结构树
我的数据库如下:Mysql 在nodejs postgresql(sequelize js)中显示类别、子类别及其子类别层次结构树,mysql,node.js,postgresql,express,sequelize.js,Mysql,Node.js,Postgresql,Express,Sequelize.js,我的数据库如下: id |姓名|家长id 1 |类别1 |空 2 |类别2 | 1 3类2 我的预期产出是 { id:1, name:"Cate1", parentId:null, subCate:[ { id:2, name:"Cate2", parentId:1, subCate:[ { id:3, name:"Cate3", par
id |姓名|家长id 1 |类别1 |空 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:[]
}
]
}
]
}
等等
那么如何得到这个结果呢。
函数getNestedChildren(arr,parentId){
var out=[]
用于(arr中的var i){
if(arr[i].parentId==parentId){
var children=getNestedChildren(arr,arr[i].id)
if(儿童长度){
arr[i].subCate=children
}
向外推(arr[i])
}
}
返回
}
log(JSON.stringify(getNestedChildren([
{id:1,名称:'edwd',parentId:null},
{id:2,名称:'ttt',parentId:null},
{id:3,名称:'ooo',parentId:1},
{id:4,名称:'ppp',父id:3},
{id:5,名称:'lll',父id:4},
{id:6,name:'mmm',parentId:4},
{id:7,名称:'nnn',父id:3},
{id:8,名称:'zzz',父id:2}
],null))
函数getNestedChildren(arr,parentId){
var out=[]
用于(arr中的var i){
if(arr[i].parentId==parentId){
var children=getNestedChildren(arr,arr[i].id)
if(儿童长度){
arr[i].subCate=children
}
向外推(arr[i])
}
}
返回
}
log(JSON.stringify(getNestedChildren([
{id:1,名称:'edwd',parentId:null},
{id:2,名称:'ttt',parentId:null},
{id:3,名称:'ooo',parentId:1},
{id:4,名称:'ppp',父id:3},
{id:5,名称:'lll',父id:4},
{id:6,name:'mmm',parentId:4},
{id:7,名称:'nnn',父id:3},
{id:8,名称:'zzz',父id:2}
],null))您尝试了什么?您是否也可以粘贴示例输入?示例输入???输入数组,该数组将产生预期的输出{id:1,名称:“Cate1”,parentId:null,subCate:[{id:2,名称:“Cate2”,parentId:1,}]},{id:2,名称:“Cate2”,parentId:null,subCate:[{id:3,名称:“Cate3”,parentId:2,}]},{id:3,名称:“Cate3”,parentId:2,subCate:[]},您尝试了什么?您也可以粘贴您的示例输入吗?示例输入???输入数组将产生预期的输出{id:1,名称:“Cate1”,parentId:null,subCate:[{id:2,名称:“Cate2”,parentId:1,}]},{id:2,名称:“Cate2”,parentId:null,子类别:[{id:3,名称:“Cate3”,parentId:2,}]},{id:3,名称:“Cate3”,parentId:2,子类别:[]},