2012-11-24 41 views
0

因此,我正在從某個地方開始,我從一個JSON對象中分配全局數組的值,然後再使用它們。下面是我在看全局數組的值在退出函數後復位

var Arr = new Array(); 
function parseFile() { 
     $.ajax({ 
      type: "GET", 
      url: "openCSVScript.php", 
      success: function(data){ 
       Arr = jQuery.parseJSON(data); 
       Console.log(Arr[0]); //shows a proper value 
      } 
     }); 
    } 

然而,在另一功能是用來這一行:

console.log("Length of Arr: " + Arr.length); //displays 0 

什麼我做錯了任何想法?

+0

在異步請求完成之前調用該函數的聲音。 – ThiefMaster

+0

您應該將您的JSON數據分配給callNumArr,callNumArr = jQuery.parseJSON(data);.然後在另一個函數中調用console.log(「Global Arr的長度:」+ callNumArr.length) – SubRed

+1

該函數的功能與該函數的範圍相同嗎? –

回答

0

你永遠不會分配任何東西給callNumArr。所以它會總是爲空。

除此之外,在異步請求完成之前調用函數的機會很大。任何依賴於callNumArr的代碼都應該從success回調中調用,除非它以其他方式保證它不會在AJAX請求完成之前執行(但這不太可能,請求可能需要比預期更長的時間等等)。

+0

抱歉 - 錯誤地複製了錯誤的全局定義:( – BearInATie

0

您沒有將結果分配給您的全局數組。看看var的名字。

+0

我錯誤地複製了錯誤的全局定義:( – BearInATie