树形结构项的线性排序

时间:2015-09-12 07:57:34

标签: javascript algorithm sorting

我有以下数据集:

var arrayOfObjects = [{
    id: '1',
    name: '1',
    parent: '4'
}, {
    name: '2',
    parent: '1'
}, {
    name: '3',
    parent: '1'
}, {
    id: '4',
    name: '4',
    parent: '5'
}, {
    name: '5',
    id: '5'
}, {
    name: '6'
}];

我想将此数组转换为新数组,其中对象已排序。唯一的规则是父对象的索引不能低于其父对象。

可能的结果:

var resultArrayOfObjects = [{
    name: '5',
    id: '5'
},{
    id: '4',
    name: '4',
    parent: '5'
},{
    id: '1',
    name: '1',
    parent: '4'
},{
    name: '2',
    parent: '1'
}, {
    name: '3',
    parent: '1'
}, {
    name: '6'
}];

名称为' 6'的对象可以在任何地方,因为他不是任何人的父母或孩子。

使这种情况发生的首选算法是什么?

0 个答案:

没有答案