Показать категорию, подкатегорию и дерево иерархии подкатегорий в nodejs-postgresql (sequelize js) - PullRequest
0 голосов
/ 04 октября 2019

Моя база данных выглядит следующим образом:


id |имя |parentId

1 |Cate1 | null

2 |Cate2 |1

3 |Cate3 |2


Мой ожидаемый результат -

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

И так далее ...

Итак, как получить этот результат.

1 Ответ

1 голос
/ 04 октября 2019

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)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...