.sort不适用于Firefox

丹·古德皮斯

我写了一个Javascript应用程序,我认为没有任何现代浏览器会遇到任何问题,但是当我对其进行测试时,它可以与Chrome,Safari,Opera甚至IE兼容,但不能与Firefox兼容。

这是有问题的排序:

var sorted = Object.keys(teams).sort(function(a, b) {
    return -(teams[a][sortBy] < teams[b][sortBy])
});

这是我演示的JSfiddle- http://jsfiddle.net/Aq6sc/1/

小提琴应该做的是,当您单击类别之一时,它应该向您显示3个“列”。团队名称,类别名称和类别值。它们应按类别值升序打印。它适用于除Firefox之外的所有浏览器。

JLRishe

如果左操作数按排序顺序排在右操作数之前,则比较函数应返回负数;如果右操作数排在最前面,则比较函数应返回正数;如果相等,则返回0。您的函数仅返回-1或0。使用此命令:

var sorted = Object.keys(teams).sort(function(a, b) {
    var l = teams[a][sortBy], r = teams[b][sortBy];
    return (l < r) ? -1 : ((l > r) ? 1 : 0);
});

http://jsfiddle.net/Aq6sc/4/

这是一个行为完全相同的版本,但可能会被认为更具可读性:

var sorted = Object.keys(teams).sort(function(a, b) {
    var l = teams[a][sortBy], r = teams[b][sortBy];

    if (l < r) { return -1; }
    if (l > r) { return 1; }
    return 0;
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章