0

我有一个对象数组,如下所示:

var a = {
 "TypeID" : 15,
 "Attr1" : "Something"
};

var b = {
 "TypeID" : 17,
 "Attr1" : "Something"
};

var c = {
 "TypeID" : 15,
 "Attr1" : "Something"
};

var d = {
 "TypeID" : 15,
 "Attr1" : "Something"
};

var e = {
 "TypeID" : 1,
 "Attr1" : "Something"
};

var objectArray = new Array();
objectArray.push(a);
objectArray.push(b);
objectArray.push(c);
objectArray.push(d); 

我尝试使用 TypeID 作为订单值对数组进行排序,但是我需要保留订单插入。我的意思是,最终的顺序必须如下:

e,a,c,d,b

但是当我实现经典排序算法(Bubble 或 Quicksort)时,我得到了排序的数组,但类似值(TypeID)的插入顺序处于不同的位置。

我第一次尝试订购类似类型的物品,但其余的都迷失了。

4

1 回答 1

0

如果您要问的是如何实现一个排序函数来保留具有相同排序键的对象的初始顺序,那么我知道的唯一方法是:

  1. 使用保证保留原始平局顺序的排序算法

  2. 添加作为原始排序序号的辅助键,并使用查看辅助排序键的排序算法。

于 2013-05-10T03:50:02.510 回答