使用reindex - AS3.0从数组中删除

时间:2012-09-06 05:21:20

标签: actionscript

我想从我的数组中删除一个项目,之后每个项目仍然有相同的索引。

实施例

var arr:Array = new Array();
arr[1] = 'One';
arr[2] = 'Two';
arr[3] = 'Three';

arr.splice(2, 1);

for(var index in arr) {
    trace(index+':'+arr[index]);
}

输出:

1:One
2:Three

应该输出

1:One
3:Three

任何能帮助我一点点的人? : - )

3 个答案:

答案 0 :(得分:0)

如果从数组中拼接元素,则刷新数组,并移动该索引后的元素以填充该索引。

如果你真的想让元素在同一个索引中,那么请用空字符串分配索引而不是拼接它。

试试这个:

array[1] = "";

代替,

array.splice(1, 1);

据我说,拼接是一种很好的练习方式。

答案 1 :(得分:0)

您可以使用delete运算符:

var arr:Array = new Array();
arr[1] = 'One';
arr[2] = 'Two';
arr[3] = 'Three';

delete arr[2];

for(var index in arr) {
    trace(index+':'+arr[index]);
}

答案 2 :(得分:0)

我找到了解决问题的方法。

我将使用一个对象来保存我的项目,而不是使用数组。喜欢这个

var objArr = {1: 'One', 2: 'Two', 3: 'Three'};

当我删除时,我喜欢这样。

delete objArr[1];

我知道我不会得到数组函数。但就我而言,我不需要它们。