我试图在将索引映射到mongo集合( items )之前对其进行随机化。
我现在拥有它的方式并不包括shuffling,只将索引映射到模板助手中的每个对象。像这样:
dayItems: function() {
return this.dayItems.map(function(item, index) {
item.index = index;
return item;
});
},
我已经尝试了在没有映射索引的情况下改组项目(这是有效的)。像这样:
编辑:对不起,这似乎并不依旧。有什么想法吗?
dayItems: function() {
return _.shuffle(this.dayItems);
},
我想在添加索引之前使用underscore.js shuffle函数对项进行随机播放。 不知怎的,虽然这两个函数似乎并不相互喜欢,因为当我把它们组合起来时它们不会返回任何东西。
这就是我的尝试:
return _.shuffle(this.dayItems).map(function(item, index) {
item.index = index;
return item;
});
由于
编辑2 :这里有一些额外的代码。使用以下代码在路由器中获取项目:
dayItems: Items.find({
gender: "male",
dayOrNight: "day",
isOutfit: true,
isPrecipitation: true,
tempId: "f",
published: true,
}, {sort: {submitted: -1}, limit:6}),
有趣的是,当我在之后移动我分配索引时,它按预期工作:
return _.shuffle(this.dayItems.map(function(item, index) {
item.index = index;
return item;
}));
答案 0 :(得分:0)
试试这个
return _.chain(this.dayItems).shuffle().map(function(item, index) {
item.index = index;
return item;
}).value();
答案 1 :(得分:0)
好的 a.dorosty 的回答是正确的。问题来自 this.dayItems ,它返回了一个mongo游标,而不是一个数组。
这有效:
return _.chain(this.dayItems.fetch()).shuffle().map(function(item, index) {
item.index = index;
return item;
}).value();