For和$ .each之间的区别?

时间:2016-08-06 18:50:38

标签: javascript jquery arrays

如果我使用.each()两个控制台日志都返回相同的值,但如果我使用for,则第二个只返回数组长度,数组长度的时间。他们之间有什么区别?我错过了什么?

    //for (var i = 0; i < streamers.length; i++) 
    $.each(streamers, function(i,data) {
        console.log(i);
        $.getJSON('https://api.twitch.tv/kraken/streams/' + data + '?callback=?', function(data) {
            console.log(i);
        });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

1 个答案:

答案 0 :(得分:0)

使用$.each,您将为每次迭代创建一个闭包,其中i不会更改。

使用for循环,i在执行$.getJSON回调之前更改,因此它将显示最后一个可能的值(因为$.getJSON是异步的)。< / p>