Оптимизация рекурсивной категории и функции подкатегории в javascript с ES6 - PullRequest
1 голос
/ 11 марта 2020

У меня есть следующий массив

const categories = [
    {id:1,name:'Electronics',parent_id:0},
    {id:2,name:'Food',parent_id:0},
    {id:3,name:'Laptops',parent_id:1},
    {id:4,name:'Torches',parent_id:1},
];

Так что в конце всего этого я ожидаю получить массив следующего характера

const final_array = [
    {id:1, name:'Electronics', children: [
        {id:3,name:'Laptops',parent_id:1},
        {id:4,name:'Torches',parent_id:1},
    ]},
    {id:2, name:'Food'}
]

То есть создать родительский дочерний массив

Итак, я написал следующее, что работает

  getNestedChildren(arr, parent) {
    var out = []
    for(var i in arr) {
      if(arr[i].parent_id === parent) {
        var children = this.getNestedChildren(arr, arr[i].id)

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

Так что, вызывая this.getNestedChildren(categories,0), это работает

Я бы хотел еще больше оптимизировать эту функцию в es6. Как я могу go рассказать об оптимизации этой функции getNestedChildren дальше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...