0
我想通过两个属性对一个集合进行排序,其中一个是“complete”,它返回true或false,另一个是id,除非我需要一个属性以降序排列。有没有办法做到这一点?主干综合排序问题
我想通过两个属性对一个集合进行排序,其中一个是“complete”,它返回true或false,另一个是id,除非我需要一个属性以降序排列。有没有办法做到这一点?主干综合排序问题
是的,你可以做那样的事情。集合的comparator
需要一个参数或两个参数函数:
你会想使用这两个参数的形式,这样的事情:
comparator: function(a, b) {
var ac = a.get('complete');
var bc = b.get('complete');
if(ac && !bc)
return 1;
if(!ac && bc)
return -1;
var as = a.get('seconds');
var bs = b.get('seconds');
if(as > bs)
return -1;
if(bs < as)
return 1;
return 0;
}
如果你有骨气的旧版本不理解这两个参数的comparator
功能,那么你”我们必须升级或想出一种方法来将complete
和seconds
合并成一个单独的排序键,这将与Underscore's sortBy
正确排序。
不错。这个例子非常有帮助。再次感谢穆。 – jmk2142