我正在尝试创建一个更有条理的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;
});