如果我使用.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>
答案 0 :(得分:0)
使用$.each
,您将为每次迭代创建一个闭包,其中i
不会更改。
使用for
循环,i
在执行$.getJSON
回调之前更改,因此它将显示最后一个可能的值(因为$.getJSON
是异步的)。< / p>