JavaScript array.sort在Chrome中不起作用
问题描述:
我在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,花了几个小时寻找这个问题的解决方案迄今为止,但没有效果。
任何想法,家伙?
非常感谢!
答
我见过类似的问题,也许情况是一样的。
我猜你的数据来自正在返回领域的字符串,而不是整数的
[{"field1":"222"},....]
,而不是
[{"field1":222},....]
后台我从来没有准确定位为什么,但是,该框架被应用程序使用似乎将这些值转换为Firefox上的Int而不是Chrome上的值。
解决方法是在定义排序的函数上使用parseInt。
铬中究竟发生了什么?错误?没有改变名单?不正确的重新排序? – StephenTG
请为排序添加一些示例数据 –
适用于我的作品:https://jsfiddle.net/DerekL/5mpa587w/ –