2012-09-26 64 views
0

我正在創建這個數組。訪問數組元素時遇到問題

var GPA_Array:Array=new Array(); 



var dg:DataGrid= new DataGrid(); 

gpaBuild(); 

      function gpaBuild() 
      { 

       dg.columns=["Num","Course","Grade","Credits"]; 


       GPA_Array.push({Num:"1",Course:"ADS",Grade:"A+",Credits:"4"}); 
       GPA_Array.push({Num:"1",Course:"ADD",Grade:"A+",Credits:"4"}); 
       dg.dataProvider=new DataProvider(GPA_Array);  



      } 

在推送數組中的數據之後,我需要加密評分和學分。 我試過這種方法,

GPA_Array[0][1],GPA_array[0][2] , 

但它沒有工作。 如果我試圖追查它

trace(GPA_Array[0][1]) 

它給了我未定義。 也,當我使用跟蹤(GPA_array.toString),它給了我錯誤。

+0

GPA_Array =新的Array() – nycynik

+0

正是你在哪裏創建陣列?它在功能體內嗎?你從哪裏打來的? –

+0

我在函數體外部創建數組,然後嘗試在函數內部訪問它。 – newMember

回答

2

您的push()方法似乎將一個對象推入數組,因此GPA_Array [0] [1]可能會引發異常。對待每一個項目的數組作爲對象和使用對象符號,你應該能夠像訪問它:

Object gpaEntry = GPA_Array[0]; 
trace("gpaEntry {Num:" + gpaEntry.Num + ",Course:" + gpaEntry.Course + ",Grade:" + gpaEntry.Grade + ",Credits:" + gpaEntry.Credits + "}); 
+0

它對此有幫助嗎?因爲我需要訪問每個gridData行,並將Credits與Credits相乘。 – newMember

+1

如果沒有很好的理由說明在將數據添加到DataGrid中後(如排序或其他操作會影響您的數據),您需要迭代數據,那麼最好先迭代數據。你可以使用上面在循環中顯示的內容來進行計算,也可以使用getItemAt遍歷dg.dataProvider;但無論哪種方式,它仍然是一個對象,你將與之合作。 – codewrangler

+0

您的代碼無法使用 – newMember