我如何使带有孩子的这个数组成为分组的select2

时间:2019-07-12 11:38:49

标签: javascript jquery-select2

我正在尝试创建一个更有条理的select2,将不同类别归为他们的父母。

我试图遍历数组并将它们映射到其父级,但是在将它们映射到父级时遇到了问题,我还没有在循环中实现。

var categories = [
 0: {
   'id': 1,
   'parent_id': null
   'name': 'Colors' 
  },
 1: {
   'id': 2,
   'parent_id': 4
   'name': 'Ford' 
  },
 2: {
   'id': 3,
   'parent_id': 5
   'name': 'Dark blue' 
  },
 3: {
   'id': 4,
   'parent_id': null
   'name': 'Cars' 
  },
 4: {
   'id': 5,
   'parent_id': 1
   'name': 'Blue' 
  },
];

我想得到的结果是一个被select2 optgroup接受以创建多个组的数组。

这样的事情。

[
 0: {
   'id': 1,
   'parent_id': null
   'name': 'Colors',
   'children': [
     {
      'id': 5,
      'parent_id': 1
      'name': 'Blue',
      'children': [
      {
       'id': 3,
       'parent_id': 5
       'name': 'Dark blue' 
       },
      ]
     },
   ]
  },
 3: {
   'id': 4,
   'parent_id': null
   'name': 'Cars',
   'children': [
    {
     'id': 2,
     'parent_id': 4
     'name': 'Ford' 
    }
   ] 
  }
];

我还想尝试遍历它们并创建一个新数组

var grouped_categories = [];

 _.each(categories, (category, index) => {
   if (!category.parent_id()) grouped_categories[category.id()] = category;      
  else grouped_categories[category.parent_id()].children[index] = category;
 });

0 个答案:

没有答案