Why does my first array item always contain 'Function'?

I'm new to javascript and have been working on modifications to a node js / mongo web service. I'm looping through an array and performing a query with an id at each index so I can get the full object back as shown below:

var topicObjArray = [orm.Topic];

for(var i = 0; i < topicIdsArray.length; i++) {

    orm.Topic
        .find({ appId: appId, _id: topic[i].id})
        .exec(function(error, topic) {
        if(error) {
            console.log('oops ' + error);
        }
        else if(topic && topic.length > 0) {
            topicObjArray.push(topic); 
            count++;
        }
        else {
            count++;
        }

        if(count == topicIdsArray.length) {
            // yay we've got all our topics! Carry on!
            // But oh no something is amiss!
        }
    });
}

Under normal circumstances the count would increment until it equals the original array count and the method can complete. In this case for some reason at initialization of the topicObjArray the first index is occupied with 'Function' before I even insert any objects. So if I am querying for six objects, I will only ever get back 5 of them, because the first index is always occupied.

I'm sure I must be overlooking something simple here, but a web search rendered no hints to a solution. The problem must be in the initialization of the array, but I don't understand what it is. I've tried different ways of instantiating it with the same result. Here is a screen capture from my debugger that best describes what is happening (I'm using WebStorm IDE):

Weirdness

Let me know if you need any more information. I appreciate any insight the community can offer.

You initialize the array like this

var topicObjArray = [orm.Topic];

This makes the first element of the array orm.Topic, which judging from the rest of your code is a function.

Simply initialize your array like this instead:

var topicObjArray = [];