2016-02-25 25 views
-1

我在JavaScript中的对象数组中使用了内置的sort()方法,它提供了一个比较函数,我认为它符合所需的要求,因为它返回1, - 1或0是否项目A分别比较大,小于或等于项目B.JavaScript array.sort在Chrome中不起作用

这是代码:关于一个Debian 8 VM

aData.sort(function(itemA, itemB) { 
    if (itemA.field1 > itemB.field1) return 1; 
    if (itemA.field1 < itemB.field1) return -1; 
    return 0; 
}); 

这完全在Iceweasel/Firefox(版本38.6.1),但它使用Chrome(版本48.0.2564.109时是完全无用的(64位))。 任何分类都没有完成,数组完全保持不变!

我已经升级了Chrome,花了几个小时寻找这个问题的解决方案迄今为止,但没有效果。

任何想法,家伙?

非常感谢!

+4

铬中究竟发生了什么?错误?没有改变名单?不正确的重新排序? – StephenTG

+1

请为排序添加一些示例数据 –

+2

适用于我的作品:https://jsfiddle.net/DerekL/5mpa587w/ –

回答

0

我见过类似的问题,也许情况是一样的。

我猜你的数据来自正在返回领域的字符串,而不是整数的

[{"field1":"222"},....] 

,而不是

[{"field1":222},....] 

后台我从来没有准确定位为什么,但是,该框架被应用程序使用似乎将这些值转换为Firefox上的Int而不是Chrome上的值。

解决方法是在定义排序的函数上使用parseInt。

相关问题