JavaScript array.sort在Chrome中不起作用

时间:2016-02-25 18:23:48

标签: javascript arrays google-chrome sorting

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

这是代码:

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

这在Debian 8 VM上的Iceweasel / Firefox(版本38.6.1)中完美运行,但在使用Chrome(版本48.0.2564.109(64位))时它完全没用。 没有任何排序,数组保持完全不变!

我升级了Chrome,到目前为止花费了几个小时搜索此问题的解决方案但无济于事。

任何想法,伙计们?

非常有责任!

1 个答案:

答案 0 :(得分:0)

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

我猜你的数据来自后端,它将字段作为字符串而不是Ints

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

而不是

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

我从来没有指出原因,但是,应用程序上使用的框架似乎在Firefox上将值转换为Int,而不是在Chrome上。

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