我正在尝试对以下数据进行排序:
var data = [
{ path: '/a', order: 0 },
{ path: '/b', order: 1 },
{ path: '/a/d', order: 1 },
{ path: '/a/c', order: 0 }
];
进入:
var expected = [
{ path: '/a', order: 0 },
{ path: '/a/c', order: 0 },
{ path: '/a/d', order: 1 },
{ path: '/b', order: 1 }
];
我发现了一篇关于分层数据的好帖子:
从那个问题我想我正在使用一张平板:
邻接列表的修改,为每条记录添加一个级别和排名(例如排序)列。
该 SO 问题中的链接已关闭,因此我无法从中获得更多信息。
我设置了一个 JsFiddle 来断言我的排序功能:
我已经尝试了一些方法,但没有一个给出正确的结果。
一个完全不同的解决方案是添加顺序并按字母顺序排序。但是由于结果最终将成为 url,因此拥有 www.example.com/01-products/01-snowboard 有点难看。
更新
我创建了一个更复杂的 JSFiddle 示例来展示我正在尝试做的事情:
所以我试图按路径排序,但节点应该在它们的级别上按顺序排序。因此,当您按字母顺序排序但最后一个子项按顺序排序时,就像文件系统一样。