我正在使用AS3中的数组,默认情况下它是稀疏的。我创建一个数组并在给定位置添加一个值。我在该索引处使其内容无效。它保留该索引值,但使内容无效。问题是长度仍然跟踪相同。有没有办法实际删除该索引而不修改任何其他索引?
ex:
array:Array = new Array();
array[ 7 ] = new Array();
array[ 16 ] = new Array();
array[ 16 ] = null;
编辑:我希望数组中的数组尽可能小,以便在上面的示例中,数组将跟踪长度为7。
答案 0 :(得分:1)
使用delete operator ...仍然,长度将保持8
...将密钥7
的值设置为null
仍然意味着,有一个值密钥7
,因为Array
可能包含任何值,包括null
。如果你真的使用稀疏数组,那么考虑使用flash.utils::Dictionary
...如果关键顺序很重要,那么请查看flash.utils::Proxy
...或制作一些不使用数组访问的数据结构,但有一些而是getVal
和setVal
方法......
格尔茨
back2dos
答案 1 :(得分:0)