0

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

例子

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

有人可以在这里帮助我吗?:-)

4

3 回答 3

0

如果从数组中拼接一个元素,则数组会被刷新,并且该索引之后的元素将被移动以填充该索引。

如果您真的希望始终将元素放在同一个索引中,那么请使用空字符串分配索引,而不是拼接它。

试试这个:

array[1] = "";

代替,

array.splice(1, 1);

在我看来,拼接是一种很好的练习方式。

于 2012-09-06T08:16:06.347 回答
0

您可以使用删除运算符:

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]);
}
于 2012-09-06T08:29:10.250 回答
0

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

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

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

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

delete objArr[1];

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

于 2012-09-06T11:32:00.910 回答