我有以下数据集:
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'的对象可以在任何地方,因为他不是任何人的父母或孩子。
使这种情况发生的首选算法是什么?