我想要实现的是以下哪些不起作用:
var names = ["MATT", "GABE", "SAM"];
var students = [];
for (var i = 0; i < 3; i++) {
students[i] = Programs.find({ CampYear: 2016, 'Teachers.Week1.Sunday': names[i] }).fetch();
}
我希望它会为每次迭代返回一个学生名称数组,但是当数组应该有名字时我会一直得到一个空数组。
如果我删除for循环并执行:
students[0] = Programs.find({ CampYear: 2016, 'Teachers.Week1.Sunday': listOfSundayTeacherNames[2] }).fetch();
它将返回预期的学生姓名。 for循环是正确的方法吗?
答案 0 :(得分:0)
想出来。无论出于何种原因,for-loop都不起作用,但使用.map会。
var names = _.map(names, function(num){ return Programs.find({ CampYear: 2016), 'Teachers.Week1.Sunday': num }).fetch(); });
答案 1 :(得分:0)
更好的方法是在查询中使用 $in
运算符:
var students = Programs.find({
'CampYear': 2016,
'Teachers.Week1.Sunday': { '$in': names }
}).fetch();