将骨干集合减少到一定数量

时间:2013-04-11 16:51:13

标签: javascript backbone.js underscore.js

希望这是一个非常简单的问题。

在Backbone.js中,我如何将未知长度的集合减少到设定长度?因此,该系列有10个型号。我希望它是2.我该怎么做?我不关心我从集合中拉出的顺序,它已被洗牌并且应该是随机的,但我如何才能减少收集?

谢谢! 凸轮

3 个答案:

答案 0 :(得分:1)

您可以使用slice

var myCollection = new Backbone.Collection(...);
_.each( myCollection.models.slice(-2), function(model) {
    console.log(model.get("id"));
});

.slice(-2)将获取最后一项,倒数第二项。 slice使用基于零的索引并提取最多但不包括最后指定索引的值。

答案 1 :(得分:0)

可能有更好的方法,但是......

while (myCollection.size() > 2)
    myCollection.pop();

答案 2 :(得分:0)

我敢打赌所有这些答案都会奏效,而且执行起来非常简单,我甚至无法相信我问过这个问题,但我最终还是这样解决了。

for (i=0; i < renderamount; i++){
    shortdata.push(shuffleddata[i]);
}

只需使用for循环从旧数组构建一个新数组,并将其长度限制为我在新集合中需要的多个模型。

谢谢大家。

相关问题