javascript - Chrome - Javascript 排序不一致

标签 javascript google-chrome sorting

我知道 Chrome 的不稳定排序问题,但我不知道如何在排序字符串时解决这个问题。

myArray.sort(function(a, b){
        var typeA=a.toLowerCase();
        var typeB=b.toLowerCase();

        return (typeA < typeB) ? -1 : (typeA > typeB) ? 1 : 0;
        });

在 FF 和 Safari 中工作正常,但在 Chrome 中这仍然返回错误的顺序。也就是说,Chrome 不接受如果 typeA == typeB,则返回 0...它仍然选择移动它。是否有处理排序字符串的修复程序?

最佳答案

JS 规范不要求排序算法稳定,因此您不能指望这一点。

解决不稳定排序问题的唯一明确方法是手动编写不同的稳定算法,或者添加一个额外的唯一键进行排序,以保证比较函数始终将两个元素视为彼此更大或更小,但永远不平等。原始数组索引就可以了。

关于javascript - Chrome - Javascript 排序不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824838/

相关文章:

javascript - 为什么 addEventListener 不适用于 Chrome 中单选按钮的焦点事件?

swift - Firebase 从多个位置检索数据(多个查询)

Javascript - 在两组数字之间添加缺失值

c++ - std::map 插入顺序和性能

javascript - 日期选择器 : Rest on next select

javascript - 如何在 AngularJS $rootScope 事件监听器中应用状态转换?

google-chrome - Chrome 扩展 : How to detect if an extension is installed using Content Scripts

javascript - JS 和 CSS 菜单停止在 webgl 页面上工作

javascript - Chrome 错误 - 无法循环打开 URL

html - page-break-* 不适用于 Chrome 和 Safari