传递给函数时,Javascript,Array不再是数组

RGr*_*run 0 javascript arrays jquery

我正在尝试编写一个显示一系列客户评价的脚本,按顺序切换每个客户评价的可见性.我正在尝试使用队列来执行此操作,并被告知使用常规Javascript数组,该数组具有方法push()shift()启用队列功能.但是,当我尝试将数组传递给我编写的函数时,我收到此错误:

TypeError: q.shift is not a function
Run Code Online (Sandbox Code Playgroud)

所以,不知何故,我传入函数的数组不再是某个数组.可以通过Javascript更有经验的人解释为什么会这样吗?

码:

function testimonials(q) {
       var e = q.shift();

       jQuery(e).fadeToggle("slow", testimonials(q.push(e)));

}

jQuery(document).ready(function() {

    var elements = jQuery(".fade-text").toArray();

    var queue = [];

    // add to queue
    for (i = 0; i  < elements.length; i++) {
        queue.push(elements[i]);
    }

    testimonials(queue);
});
Run Code Online (Sandbox Code Playgroud)

Raj*_*amy 5

这是问题testimonials(q.push(e)),返回值push是一个数字,并且没有调用的方法shift().

 jQuery(e).fadeToggle("slow",function(){ testimonials((q.push(e), q)) });
Run Code Online (Sandbox Code Playgroud)

另外你不使用回调fadeToggle正确,您呼叫的功能testimonials马上.将该函数调用包装在匿名函数中并将其作为callBack传递.