JavaScript array.sort在Chrome中不起作用
我在JavaScript中的一个对象数组上使用内置的sort()方法,提供了一个比较函数,我认为它满足了需要,因为无论项目a比较大、小还是等于项目B,它都返回1、-1或0 代码如下:JavaScript array.sort在Chrome中不起作用,javascript,arrays,google-chrome,sorting,Javascript,Arrays,Google Chrome,Sorting,我在JavaScript中的一个对象数组上使用内置的sort()方法,提供了一个比较函数,我认为它满足了需要,因为无论项目a比较大、小还是等于项目B,它都返回1、-1或0 代码如下: aData.sort(function(itemA, itemB) { if (itemA.field1 > itemB.field1) return 1; if (itemA.field1 < itemB.field1) return -1; return 0; }); aD
aData.sort(function(itemA, itemB) {
if (itemA.field1 > itemB.field1) return 1;
if (itemA.field1 < itemB.field1) return -1;
return 0;
});
aData.sort(函数(itemA,itemB){
如果(itemA.field1>itemB.field1)返回1;
if(itemA.field1
这在Debian 8虚拟机上的Iceweasel/Firefox(版本38.6.1)中非常有效,但在使用Chrome(版本48.0.2564.109(64位))时完全没有用。
不进行任何排序,数组完全保持不变
我已经升级了Chrome,花了几个小时寻找解决这个问题的方法,但是没有用
有什么想法吗,伙计们
非常感谢 我也看到过类似的问题,可能是相同的情况 我猜您的数据来自一个后端,该后端将字段作为字符串而不是整数返回
[{"field1":"222"},....]
而不是
[{"field1":222},....]
我从未指出原因,但应用程序中使用的框架似乎在Firefox上而不是Chrome上将值转换为Point
解决方案是在定义排序的函数上使用parseInt。chrome中到底发生了什么?错误?名单没有变化吗?重新排序不正确?请为sortingWorks为我添加一些示例数据:我编辑了这篇文章,在Chrome中没有发生任何事情,数组保持不变。我发现了真正的问题所在。我试图排序的实际上是一个关联数组(即对象),而不是纯数组。不管怎么说,所有其他浏览器都会处理它,所以这是一种拖累,Chrome对它如此挑剔。谢谢大家!