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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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
Backbone.js 仅洗牌主干集合中的已提取项_Backbone.js - Fatal编程技术网

Backbone.js 仅洗牌主干集合中的已提取项

Backbone.js 仅洗牌主干集合中的已提取项,backbone.js,Backbone.js,代理,因此所有主干集合都具有方法shuffle 下划线的洗牌效果很好: 如果我只想洗牌下划线集合中的最后5项,可以使用slice: 您还可以对主干集合进行切片和洗牌: 但对于从数据库多次提取项目的主干集合,我似乎不能只洗牌上次提取调用提取的项目,因为集合中的项目似乎是按照提取顺序排序的,即使在片段洗牌之后也是如此 a.models // say, [id:1, id:2, id:3] a.fetch().done(function (data) { return data = _.s

代理,因此所有主干集合都具有方法shuffle

下划线的洗牌效果很好:

如果我只想洗牌下划线集合中的最后5项,可以使用slice:

您还可以对主干集合进行切片和洗牌:

但对于从数据库多次提取项目的主干集合,我似乎不能只洗牌上次提取调用提取的项目,因为集合中的项目似乎是按照提取顺序排序的,即使在片段洗牌之后也是如此

a.models  // say, [id:1, id:2, id:3]
a.fetch().done(function (data) {
    return data = _.shuffle(data)
})
a.models  // [id:1, id:2, id:3, id:4, id:5, id:6], still sorted
似乎延迟对象内部的排序不会以任何方式改变外部集合


那么,如何在主干集合的末尾仅对n个项目进行排序?

您可以使用解析函数来洗牌从服务器返回的数据:

MyCollection.prototype.parse = function(resp){
  return _.shuffle(resp);
};

myCollection.fetch();

您可以使用随机化比较器在将项目添加到集合中时对其进行洗牌

comparator: function(a) {
  var rand = _.random(0, 1000);
  a.set({rand: rand});
  return rand;
}

fiddle:

在提取的成功回调中对数据进行洗牌怎么样?那么您想洗牌或排序吗?@Jack您的意思是什么?示例中的.fetch.done回调?@Brian我看到您解决了您的问题,实际上我的意思是将成功回调传递给调用,类似于.fetch{成功:函数集合、响应、选项{….哦,快照,我没有想到解析级别的洗牌。这看起来很有希望…现在将测试它。这是出乎意料的天才。谢谢!