Sorting 主干网复杂排序问题
我想按两个属性对集合进行排序,一个是“complete”,返回true或false,第二个是按id排序,但我需要降序。有办法吗?是的,你可以做那种事。集合采用单参数或双参数函数: 比较器函数可以定义为(传递一个接受单个参数的函数)或(传递一个需要两个参数的比较器函数) 您可能希望使用双参数形式,类似于:Sorting 主干网复杂排序问题,sorting,backbone.js,Sorting,Backbone.js,我想按两个属性对集合进行排序,一个是“complete”,返回true或false,第二个是按id排序,但我需要降序。有办法吗?是的,你可以做那种事。集合采用单参数或双参数函数: 比较器函数可以定义为(传递一个接受单个参数的函数)或(传递一个需要两个参数的比较器函数) 您可能希望使用双参数形式,类似于: comparator: function(a, b) { var ac = a.get('complete'); var bc = b.get('complete');
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;
}
比较器:函数(a,b){
var ac=a.get(‘完成’);
var bc=b.get('complete');
如果(ac&&!bc)
返回1;
如果(!ac&&bc)
返回-1;
var as=a.get('seconds');
var bs=b.get('seconds');
如果(as>bs)
返回-1;
如果(bs如果您有一个旧版本的主干网,它不理解两个参数
comparator
函数,那么您必须升级或找到一种方法,将complete
和seconds
合并到一个单独的排序键中,该键将正确排序。Nice。这个例子非常有用。再次感谢你。