【发布时间】:2016-02-17 11:49:45
【问题描述】:
如果我有一个包含这样的对象的数组:
percentages_oparea
0:
name: test1
pvalue: 15
1:
name: test2
pvalue: 16
我可以这样在javascript中排序:
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
【问题讨论】:
-
Sort in javascript 不是stable 排序算法。所以它可能会交换相同值的元素
标签: javascript sorting