Actionscript 使用reindex从阵列中删除-AS3.0

Actionscript 使用reindex从阵列中删除-AS3.0,actionscript,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 有谁能帮我一点忙吗?:-) 如果从数组拼

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

范例

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

有谁能帮我一点忙吗?:-)

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

如果您真的想让元素始终位于同一索引中,那么请使用空字符串分配索引,而不是将其拼接

试试这个:

array[1] = "";
而不是

array.splice(1, 1);
据我所知,拼接是一种很好的练习方式。

您可以使用运算符:

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]);
}

我找到了解决问题的办法

我将使用对象来保存项目,而不是使用数组。像这样

var objArr = {1: 'One', 2: 'Two', 3: 'Three'};
当我删除的时候,我喜欢这样

delete objArr[1];

我知道我不会得到数组函数。但在我的情况下,我不需要它们。

这将使其未定义。这不是我想要的。很抱歉但是谢谢你的回答:-)嗯,我不能得到你需要的东西。在您的代码之后,您将通过
trace(arr[2])
收到什么?我已经发布了一个带有我的解决方案的答案:-)我必须删除该项,而不仅仅是将其设置为null。但是感谢您的回答:-)但是请记住,在删除时,您的项目不会与删除前的项目位于同一索引中。