2013-07-29 46 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

相关问题