Javascript在chrome中排序相等值的数组

时间:2015-01-13 15:42:13

标签: javascript arrays google-chrome sorting

我有这个排序功能,但我用它来排序一个表,我可以按日期排序(为简单起见我已删除)和字符串,但是整数表现得很奇怪,一个常见的情况是所有值都可以是0 ,这将给出数组

[0,0,0,0]

这在firefox中完美运行但不在chrome中,它改变了我的表中行的顺序,尽管它们是相同的,我甚至遵循ECMA标准。为什么chrome会改变订单呢?我也尝试过使用

return (ascending_order ? a - b : b - a)

但与我使用不同数据类型的更一般方法的结果相同

arr.sort(function(a, b){
    var onlydigitsRegex = new RegExp("\d+","g");
    if (a.match(onlydigitsRegex) && b.match(onlydigitsRegex)) {
      a = parseInt(a);
      b = parseInt(b);
    } else {
      a = a.toLowerCase();
      b = b.toLowerCase();
    }
    return (a === b) ? 0 : (ascending_order ? ((a > b) ? 1 : -1) : ((a < b)? 1 : -1));
    });

0 个答案:

没有答案