如何在Flex中动态地向现有数组添加属性

时间:2013-07-29 08:38:17

标签: arrays flex

我有一个2D数组:

Asia India 100 200
Asia China 200 300

我需要将一个名为“state”的属性值为false添加到上面的数组(内部),作为上面数组的附加列,我的输出是:

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

这样我就可以将附加列的属性名称“state”赋予项呈示器。 如何获得相同的结果。这可能吗?

1 个答案:

答案 0 :(得分:1)

对于行:

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

使用Array.map()也应该有用。

对于单个对象:

        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

        }

如果某人有更好/更快的方式,我有兴趣听到它。