从Jquery JSON请求推送到Javascript数组

psi*_*eek 2 javascript arrays jquery

为什么这段代码总是返回0?

     var possibleMatches = new Array();
  $.getJSON('getInformation.php', function(data) {
   $.each(data, function(i){
    possibleMatches.push(data[i]);
   })
  });
  alert(possibleMatches.length);
Run Code Online (Sandbox Code Playgroud)

虽然我可以移动或添加"alert(possibleMatches.length);" 在$ .each中,它将输出正确数量的元素.

我只是好奇为什么价值不像我预期的那样进入数组.我确定它是局部变量与全局变量问题,只是不确定原因.

基本上,这是尝试做的是使用数据结果填充possibleMatches数组.

谢谢!

Pet*_*ley 6

异步.该行在alert(possibleMatches.length);成功回调执行之前$.getJSON()执行.

因此,要准确地提供警报报告,只需移动它即可.

var possibleMatches = new Array();
$.getJSON('getInformation.php', function(data) {
  $.each(data, function(i){
    possibleMatches.push(data[i]);
  })

  // To here
  alert(possibleMatches.length);
});
// From here
Run Code Online (Sandbox Code Playgroud)

请记住,AJAX中的第一个A代表"异步"