Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 主干网复杂排序问题_Sorting_Backbone.js - Fatal编程技术网

Sorting 主干网复杂排序问题

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');

我想按两个属性对集合进行排序,一个是“complete”,返回true或false,第二个是按id排序,但我需要降序。有办法吗?

是的,你可以做那种事。集合采用单参数或双参数函数:

比较器函数可以定义为(传递一个接受单个参数的函数)或(传递一个需要两个参数的比较器函数)

您可能希望使用双参数形式,类似于:

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。这个例子非常有用。再次感谢你。