数组从回调函数返回未定义

时间:2018-07-10 14:06:30

标签: javascript node.js express

我在数据库中有一堆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);

0 个答案:

没有答案