我写了一个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之外的所有浏览器。
如果左操作数按排序顺序排在右操作数之前,则比较函数应返回负数;如果右操作数排在最前面,则比较函数应返回正数;如果相等,则返回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);
});
这是一个行为完全相同的版本,但可能会被认为更具可读性:
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] 删除。
我来说两句