初学者试图围绕javascript和范围问题包围我。
我拉一些json数据并将其推送到一个名为zero []的数组中。让它在匿名函数之外工作失败。
如何让零[]在函数外部工作?
<script>
var addr = "data657";
var zero = [];
var full = [];
$(function(){
jQuery.getJSON('https://jsondataurl.com/'+addr, function(result) {
if (result == 0)
zero.push(addr);
if (result > 0)
full.push(addr);
var j = Math.floor(Math.random()*4);
alert(zero[j]); /// works great here !!!
});
});
alert(zero[j]); // DOES NOT work here
$("#foo").attr("data-stuff", zero[j]); // DOES NOT work here
</script>
答案 0 :(得分:0)
zero
在范围内。该变量尚未填充。 j
恰好不在范围内。
您要对回调中的数据执行的任何操作都必须在回调中完成。