2013-07-29 48 views
0

添加到現有的陣列我有一個2D陣列爲:如何的屬性動態地Flex中

Asia India 100 200 
Asia China 200 300 

我需要添加名爲「狀態」與值假此以上陣列(內部)作爲屬性附加列以上數組,其中我的輸出是:

Asia India 100 200 state:false 
Asia China 200 300 state:false 

,這樣我可以給其他列的屬性名稱「狀態」,以項目渲染器。 如何獲得相同的結果?是否有可能?

+0

我有點困惑。根據你提供的信息,你有一串字符串。那是對的嗎?或者你有一組對象?將字符串與對象屬性混合是沒有意義的 - 儘管我相信這在技術上是可行的。 – JeffryHouser

+0

實際上,在我之前發佈的關於AdvancedDataGrid的帖子中,使用複選框控件作爲GroupItemRenderer,你已經提供了對我的問題的回答,以便使用data屬性並傳遞該屬性來設置選定的未選中狀態.Am試圖做到這一點,我需要在我的原始數組的最後一列填充名爲'state'的屬性,以便我可以將選定的特定點擊行的屬性設置爲true,取消選擇respy則爲false。 – Flexiflex

回答

1

對於線:使用Array.map()應太

var originalArray:Array = //your original array 

var newArray:Array = new Array(); 

for each (var o:Object in originalArray){ 
    o.state = "false"; 
    newArray.push(o); 
} 

originalArray = newArray; 

trace(originalArray[0]) // Asia India 100 200 
trace(originalArray.state) //false 

對於invidual對象:

 protected function addStates():void 
     { 

      var originalArray:Array = //your original array 
      var newArray:Array = new Array();    

      for each(var o:Object in originalArray){      
       var tempArray:Array = new Array(); 
       for each(var element:* in o){ 
        var newObject:Object = new Object(); 
        newObject.element = element; 
        newObject.state = "false"; 
        tempArray.push(newObject); 

       } 
       newArray.push(tempArray); 
      } 

      originalArray = newArray;  
      trace(originalArray[0][1].element); // India 
      trace(originalArray[0][1].state); // false 

     } 

如果有人有更好/更快的方式我很感興趣地聽到它。

+0

我很難與這個答案。首先,你設置了'originalArray = new Array();'後面跟着原始數組的一些痕跡。爲什麼這些痕跡會返回任何內容其次,原始問題表明他有一個二維數組;但我不清楚這個代碼是否會處理多個維度。 – JeffryHouser

+0

糾正了拼寫錯誤,遺憾的是,使用二維數組進行測試,它似乎工作。 –

+0

@Pete TNT是否可以將上述數組修改爲正常的2D數組,以便我可以直接從原始數組中獲得'state'屬性,例如「originalArray [row] [column] .state 「 – Flexiflex

相關問題