views:

822

answers:

2

I need to remove the value associated with a property in a Flex 3 associative array; is this possible?

For example, suppose I created this array like so:

var myArray:Object = new Object();
myArray[someXML.@attribute] = "foo";

Later, I need to do something like this:

delete myArray[someXML.@attribute];

However, I get this error message at runtime:

Error #1119: Delete operator is not supported with operand of type XMLList.

How do I perform this operation?

A: 

Rather than delete it, try setting the value to null.

myArray[someXML.@attribute] = null;

That way it'll end up the same as any other value in the array that isn't defined.

joshbuhler
+3  A: 

delete doesn't do as much in AS3 as it did in AS2:

http://www.gskinner.com/blog/archives/2006/06/understanding_t.html

However, I think your problem might be solved by simply using toString(), i.e.

var myArray:Object = new Object();
myArray[[email protected]()] = "foo";

delete myArray[[email protected]()];
quoo