代码之家  ›  专栏  ›  技术社区  ›  user779159

在Javascript中高效地排序链表?

  •  -1
  • user779159  · 技术社区  · 4 年前

    在Javascript/NodeJS中对链接列表排序最有效的方法是什么?如果我有一个对象数组 id comesAfter 指的是 身份证件 对于清单上的前一项,我该如何整理?

    // before sorting
    [
      { id: "three", comesAfter: "two" },
      { id: "one", comesAfter: null },
      { id: "four", comesAfter: "three" },
      { id: "two", comesAfter: "one" },
    ]
    
    // after sorting
    [
      { id: "one", comesAfter: null },
      { id: "two", comesAfter: "one" },
      { id: "three", comesAfter: "two" },
      { id: "four", comesAfter: "three" },
    ]
    
    0 回复  |  直到 4 年前
        1
  •  0
  •   Lajos Arpad    4 年前

    var obj = {};
    for (var i = 0; i < input.length; i++) {
        obj[input[i].comesAfter] = input[i];
    }
    

    现在,让我们生成输出:

    var index = 0;
    var output = [obj.null];
    while (++index < input.length) {
        output[index] = obj[output[index - 1].id];
    }