当我尝试在if条件内执行console.log(recommendedTasks)
时,它可以工作,但数组外部仍然为空
有我尝试过的代码:
let recommendedTasks = [];
Task.find({}).stream()
.on('data', function(task){
for(let skill of member.skills){
for(let skill2 of task.skills){
if(String(skill) == String(skill2)) recommendedTasks.push(task._id);
}
}
});
console.log(recommendedTasks)
答案 0 :(得分:0)
这应该是评论,但我没有这些特权。
应该是因为console.log
在for循环中被调用。
以下代码应该可以使用。
for (i = 0; i < recommendedTasks.length; i++) {
console.log(recommendedTasks[i])
}
我希望再次发表评论。希望这对您有帮助!
答案 1 :(得分:0)
之所以发生这种情况,是因为您在Task函数外部定义了RecommendationTasks,它与使用第一个可用值[]的console.log()同时触发,请尝试执行此操作。
Task.find({}).stream()
.on('data', function(task){
let recommendedTasks = [];
for(let skill of member.skills){
for(let skill2 of task.skills){
if(String(skill) == String(skill2)) return recommendedTasks.push(task._id);
}
}
});
console.log(recommendedTasks)
希望有帮助。