问题
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