【发布时间】:2018-04-27 07:40:27
【问题描述】:
我有以下需要以特殊方式排序的对象数组:
var sections = [
{begin:"test3", end:"test4"},
{begin:"test5", end:"test2"},
{begin:"test2", end:"test3"},
];
所有部分都通过sectionA.end == sectionB.begin 链接在一起,因此排序操作的结果应该是:
var sectionsSorted = [
{begin:"test5", end:"test2"},
{begin:"test2", end:"test3"},
{begin:"test3", end:"test4"}
];
我想在Array.prototype.sort() 方法中执行此操作。我意识到如果begin 在任何部分都不是end,那么可以找到开始部分,但从那里开始我很多。有人知道如何实现这样的东西吗?
我做了一个 JSFiddle:https://jsfiddle.net/fxmnxh8L/1/
【问题讨论】:
-
什么定义了新订单的起点?最大的
begin?还是只有一个订单满足条件,您必须搜索正确的组合?数据是否保证包含可链接值的完整链? -
起点由
section.begin not in [all sections.end]定义。希望我描述得当
标签: javascript arrays algorithm sorting