Array.Sort()方法在不同浏览器中的稳定性如何?我知道ECMA脚本规范没有指定用于排序数组的算法,也没有指定排序是否应该稳定。我发现这是Firefox的信息它指定Firefox使用稳定的排序。有人知道IE6/7/8,Chrome和Safari吗?
3 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
qsort().
function stableSorted(array, compareFunction) {
compareFunction = compareFunction || defaultCompare;
var indicies = new Array(array.length);
for (var i = 0; i < indicies.length; i++)
indicies[i] = i; indicies.sort(function(a, b)) {var aValue = array[a], bValue = array[b]; var order = compareFunction(a, b); if (order != 0) return order;
if (a < b) return -1; else return 1; });
var sorted = new Array(array.length);
for (var i = 0; i < sorted.length; i++)
sorted[i] = array[indicies[i]];
return sorted;}// The default comparison logic used by Array.sort(), if compareFunction is not provided:function defaultCompare(a, b) {
a = String(a);
b = String(b);
if (a < b) return -1;
else if (a > b) return 1;
else return 0;}添加回答
举报
0/150
提交
取消
