I'm dealing with a very frustrating issue where I can console.log an array, but when I try to return it, it returns as a blank array with no length. 

Below is the code, the input it is getting is like [0.1234]. Optionally there are other parameters, but those are not needed for now. Without them, it is just returns an array. Actually just the input. Well that's what I want it to do.

In the else suite, I console.log(oArr) and it logs fine, but when I return it, it returns a blank array. There you will also see I had to transfer i, the input parameter, to an input var because when I tried checking the length of it inside the setTimeout, it was giving a length of zero even though when I was logging it, what was being logged did not have a length of zero. But when I assigned it to a new var, it worked fine. The reason the setTimeout exists is because the for-loop doesn't run unless I use the setTimeout to put it next in the queue.

```
function runV(i, l, y){
    var a=[],o=[],x={};
    if(i[1]!==undefined){
        a=i[0];
        if(i.length>1) i=i[1];
        else i=undefined;
        setTimeout(function(){
            for(var j=0; j<a.length; j++){
                var oArr=[];
                oArr.push(a[j]);
                if(i===undefined){
                    if(y!==undefined) o=y.activate(oArr);
                    else return oArr;
                }
                else{
                    if(y!==undefined) x['adverbs']=y.activate(oArr);
                    else return oArr;
                }
            }
        }, 0);
        if(i!==undefined){
            for(var j=0; j<i.length; j++){
                var oArr=[];
                oArr.push(i[j]);
                if(l!==undefined) x['emotions']=l.activate(oArr);
            }
        }
    }
    else{
        var input;
        setTimeout(function(){
            input=i;
            for(var j=0; j<input.length; j++){
                var oArr=[];
                oArr.push(i[j]);
                console.log(oArr);
                if(l!==undefined) o=l.activate(oArr);
                return oArr;
            }
        }, 0);
    }
    if(x.adverbs!==undefined) return x;
    return o;
}

```