我在数据库中有一堆Video对象,每个对象都有year:属性。我正在尝试创建一个函数,该函数将按顺序返回所有唯一年份的数组。独特的年份和正确的订购部分颇有魅力。但是返回的数组始终是未定义的。
我已经花了一个下午讨论回调相关的问题和答案,但我认为我缺少其中的关键部分。如何调用 years(),以确保正确填写 var uniqueYears ?希望有人愿意帮忙。
我的代码如下:
var yearList = [];
function years(){
Video.find({}, function(err, allVideos){
sortByKey(allVideos, "year").reverse();
var currentYear = allVideos[0].year;
yearList.push(currentYear);
for(i=0; i<allVideos.length; i++) {
if(allVideos[i].year < currentYear){
currentYear = allVideos[i].year;
yearList.push(currentYear)
}
}
console.log("yearList after forloop is " + yearList)
return yearList
})
}
var uniqueYears = years();
console.log("uniqueYears is = " + uniqueYears);