问题
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?
回答1:
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[someXML.@attribute.toString()] = "foo";
delete myArray[someXML.@attribute.toString()];
回答2:
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.
来源:https://stackoverflow.com/questions/1155423/how-do-i-delete-a-value-from-an-object-based-associative-array-in-flex-3