问题
I have an 2D array as:
Asia India 100 200
Asia China 200 300
I need to add an attribute named "state" with value false to this above array (internally) as an additional column to the above array where my output is :
Asia India 100 200 state:false
Asia China 200 300 state:false
so that I can give the additional column's attribute name "state" to item renderer. How to get the same.?Is it possible?
回答1:
For lines:
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
using Array.map() should work too.
For invidual objects:
        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
        }
If someone has a better/faster way I am interested to hear it.
来源:https://stackoverflow.com/questions/17919428/how-to-add-an-attribute-to-an-existing-array-dynamically-in-flex