如果我有一个包含这样的对象的数组:
percentages_oparea
0:
name: test1
pvalue: 15
1:
name: test2
pvalue: 16
我可以用这种方式对此进行排序:
percentages_oparea.sort(function(a, b) {
return parseFloat(b.pvalue) - parseFloat(a.pvalue);
});
并且它可以正常工作:
percentages_oparea
0:
name: test2
pvalue: 16
1:
name: test1
pvalue: 15
如果b.value
的值a.value
完全相同,我不想进行任何排序。怎么实现这个?
我不知道为什么,但是当pvalue中具有完全相同的值时,我得到了这个结果(test1和test2切换索引):
0:
name: test2
pvalue: 15
1:
name: test1
pvalue: 15
但我想要(什么都不应该改变)
0:
name: test1
pvalue: 15
1:
name: test2
pvalue: 15
答案 0 :(得分:1)
您所指的是稳定性,并指的是一种排序算法容量,用于维护被认为相等的项目之间的排序。并非所有算法都能提供这种保证,遗憾的是,您使用的算法显然不具备此功能。
我建议您查看this article regarding sorting algorithms以获取完整列表。